最近,我設計了一個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頭域之外的其他格式顯示的。 –