[英]REST: HTTP headers or request parameters
我一直在圍繞REST進行一些研究。 我注意到Amazon S3 API主要使用http標頭作為其REST接口。 這對我來說是一個驚喜,因為我認為接口主要用於請求參數。
我的問題是:我應該主要使用http標頭開發我的REST接口,還是應該使用請求參數?
問題主要在於定義的參數是否是資源標識符(URI)的一部分。 如果是這樣,那么你將使用請求參數,否則使用HTTP自定義標頭。 例如,在音樂庫中傳遞album
的ID必須是URI的一部分。
請記住,例如/employee/id/45
(或者/employee?id=45
,REST 對查詢字符串參數沒有偏見或者對於清晰的斜杠分隔的URI)標識一個資源。 現在,您可以通過發送請求標頭content-type: text/plain
來使用內容協商content-type: text/plain
或content-type: image/jpg
來獲取信息或圖像。 在這方面,資源被認為是相同的,並且標頭僅用於定義資源的格式。
一般來說,我不是HTTP自定義標頭的忠實粉絲。 這通常假設客戶端具有服務器實現的先驗知識(不能通過自然HTTP方式發現,即超媒體),這通常被認為是REST反模式
HTTP標頭通常定義與請求/響應過程中要實現的HTTP 正交的HTTP方面。 Authorization
標題(真的是用詞不當,應該是身份驗證)是一個典型的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.