我正在使用 put 來修改資源。我想知道當路徑中給出的 id 與提供給資源主體的 id 不同時,回傳的適當狀態代碼是什么。
例如
REST api 操作方法是: /resources/{id}
身體:
{
"id": "test",
"name": "my_resource"
}
應該向以下 curl 請求回傳什么 HTTP 狀態代碼?
curl -X PUT 'localhost:8080/resources/test2' \
--header 'Content-Type: application/json' \
--data-raw '{
"id": "test",
"name": "my_resource"
}'
uj5u.com熱心網友回復:
你可能可以為任何一個爭論
- 403 Forbidden(我理解你的要求,我拒絕滿足它——詳情見回應正文)
- 409 Conflict(您提議的更改與資源的當前狀態沖突-有關詳細資訊,請參閱回應正文)
- 422 不可處理的內容(您的請求的正文在內部是一致的,但在這里沒有意義 - 有關詳細資訊,請參閱回應正文)。
對于 HTTP 應用程式本身的通用元素,您選擇其中的哪一個并不重要——它們都是不可快取的錯誤,組件不會有任何型別的自動恢復等。
您可能會考慮的一個決勝局是這些條目將如何出現在您的訪問日志中/您的自動監控將如何處理它們:如果您希望這些訊息在您的日志中脫穎而出,那么您將需要選擇狀態代碼這并沒有被其他含義所多載。
更多詳細資訊,請參見HTTP Semantics 的 15.5節
您認為 500 Internal Server Error 加上正確的解釋也可以,還是令人困惑?
當請求中的資訊是問題的根源時,5xx Server Error 是不合適的,因為請求的形式是客戶端的責任,而不是服務器的責任。
松散地:4xx 涵蓋了服務器宣布“您不應該要求那個”的所有情況。5xx 是“你要求的很好,但我做不到”的變體。
請參閱HTTP 語意規范,特別是第 15.5 和 15.6 節(或者,如果您更喜歡早期的參考,請參閱RFC 7231 6.5和6.6)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/328438.html
下一篇:使用HTTPV1安排FCM通知
