最近,我设计了一个RESTful API,并且我想使用Link
头字段来实现HATEOAS。有没有一种标准的方法来定义HTTP头字段中的CURIE?
这一切都很好,没有任何实际问题,但我想让API的客户端更容易。
的Link
头例如可能是这样的:
Link: <https://api.domain.com/orders/{id}>; rel="https://docs.domain.com/order"
在这种情况下,客户将不得不通过搜索在rel
属性https://docs.domain.com/order
值找到的链接。
这是有效的,但由于文档的URI可能会改变它的脆弱性,并且由于它的长度,它使得它作为搜索关键词有点不切实际。
所以我想尝试和使用居里使它像这样代替:
Link: <https://api.domain.com/orders/{id}>; rel="[rc:order]"
这样一个URI变化的问题得以减轻,在大多数情况下,这是更紧凑使客户更容易搜索。
我的问题是,因为我使用的是Link
头字段来实现HATEOAS,我觉得它将CURIE作为HTTP头字段最为一致,而不是在响应主体中引入元数据。由于整个API使用标准HTTP头字段和所有元数据(分页,版本控制等)的状态代码,所以我宁愿不要将元数据引入响应主体来定义CURIE。
但是,如果我使用HTTP头字段,我应该使用哪个字段的CURIE?
是否有一个标准的方式来做到这一点与HTTP头字段?
如果不是,我应该只使用一个自定义标题字段,如X-Curie: <https://docs.domain.com>; name="rc"
,并将其文档记录在客户端?
我环顾四周,大部分资源都是参考XML或HAL标准,所以任何有关HTTP头字段的信息都将不胜感激。
因为这就是RFC链接所需的网页。它指出:“不希望注册关系类型的应用程序可以使用扩展关系类型,它是唯一标识关系类型的URI [RFC3986]”然后它会说:“当扩展关系类型进行比较时,它们必须作为字符串进行比较(如果以不同的格式序列化,转换为URI后,例如Curie [W3C.CR-curie-20090116])“。所以需要一个URI并且允许CURIE,我只是想知道是否有标准的方法来定义CURIE。这并不意味着URI绝对不稳定,但CURIE更好。 –
至少这是我对RFC的理解。当然,我并不想使用CURIE,我只是想,如果有一种标准的方法可以在HTTP头域中定义一个CURIE,这会使客户端更好一些。 –
@JakeLucas - 你误解了那部分;它是关于链接关系以除HTTP头域之外的其他格式显示的。 –