我們有一個REST API,客戶端通常將POST和PUT數據發送到該API。當他們這樣做時,有時他們發佈的數據導致我們的系統沒有任何變化。 POST和PUT格式良好,但他們發送的數據與我們數據庫中的數據完全相同。發生這種情況時,我發現我們正在返回400 HTTP狀態。不幸的是,這意味着「錯誤的請求」,如「服務器由於語法格式不正確而無法理解的請求」。REST:對於被忽略的POST的正確HTTP響應代碼
很明顯,情況並非如此,但我被告知我們將使用這個,因爲沒有其他適當的狀態代碼。我們考慮的選擇:
- 304未修改。遺憾的是,這僅適用於GET請求。
- 204無內容。似乎關閉,但禁止一個實體。
其他選擇似乎同樣糟糕。我們可能會使用200 OK
,並在我們返回的XML文檔中提供相關信息,但這看起來不是很「RESTish」。 REST世界通常如何處理這個問題?
(固定未修改響應代碼。謝謝Mkoeller)
HTTP狀態302被命名爲「找到」。 – mkoeller 2008-11-12 14:02:45