假設在我的RESTful接口中,我需要客戶端包含一些特殊的頭文件,以表明它是授權客戶端。 (請相信我;這是項目的一項要求。)如果HTTP請求在此頭中包含不正確的值,則服務器需要發回一個HTTP響應,客戶端可以識別它在頭中發送了不支持的值。返回專門的HTTP響應的正確方法是什麼?
什麼是使用HTTP發回此信息的適當方式?
- 我可以發回一個
400 Bad Request
響應,但是如何告訴客戶究竟是什麼問題?顯而易見的選擇是在響應的主體中包含一些消息。但是(除了i18n的問題),客戶端盲目地顯示錯誤信息的內容真的是一個好主意嗎? - 我可以發回一個
400 Bad Request
響應,並帶有一個專用的特殊標題,指明這樣的標頭有錯誤的代碼。這有一個好處,即客戶可以實際處理錯誤是什麼(而不是內容中的自由文本)。那麼400
響應會成爲一個全面的響應,在某些專有頭中會出現實際的錯誤?這是一個很好的一般模式?但這幾乎暗示... - 我可以發回一些具有專有含義的任意
4XX
響應,如472 Bad Foo Header Value
。微軟似乎有時走這條路。顯而易見的問題是未來版本的HTTP(或與其他人完成相同的事情)發生衝突的可能性。
我想我更傾向於400 Bad Request
與一個特殊的標題指示錯誤專業化。對這個用例有任何想法或經驗?
「Guidance」==「也許不屬於[so]」。 –
Puleaze。如果您不喜歡「指導」一詞,我會將其更改爲「返回自定義HTTP響應的最佳方式」?請看整個句子的語義。 –
我的意思是你正在尋求指導而不是問一個特定的編程問題。 [so]不是指導的地方。我可以輕易地投票決定將此視爲「主要基於觀點的」,因爲您「傾向於」,因爲您正在尋找「想法或經驗」。 –