當 API 接收到映射系統中附加資料但未找到附加資料的屬性時,我無法選擇正確的 HTTP 狀態。我最初的想法是422因為它描述了用例,但聽起來它是為 WebDAV 保留的。然后我在想也許是一個404,但我在心里把它與一個不正確的 URL 聯系起來。另一個選項是使用錯誤代碼200并顯示失敗訊息。
示例:密鑰nvdaKey不是系統知道的密鑰配置。
POST: pgpTool.com/encrypt
{
"message": "my secret message",
"keyConfigName": "nvdaKey"
}
uj5u.com熱心網友回復:
IANA HTTP 狀態代碼注冊表目前將HTTP 語意列為狀態代碼422的權威參考
422(Unprocessable Content)狀態碼表示服務器理解請求內容的內容型別(因此415(Unsupported Media Type)狀態碼是不合適的),請求內容的語法正確,但無法處理包含的說明。
因此,如果您認為這是贏家,那就去吧。
403 Forbidden也是一個選項(“我理解您的要求,但我拒絕滿足它”)。
狀態碼是通過網路域傳輸檔案的元資料;目標受眾是通用 HTTP 組件(瀏覽器、快取、代理......) 客戶端應該從正文中獲取訊息的語意(就像我們期望人類閱讀 Web 以通過以下方式學習錯誤一樣)讀取回傳的網頁,而不是讀取 HTTP 標頭)。
因此,除了一些純粹的機械問題(快取、標頭解釋)之外,只要您獲得正確的類 (Client Error / 4xx),就不一定要準確地生成正確的狀態代碼。
請注意,無法識別 422 的客戶端應將回應視為 400。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/437101.html
標籤:api 休息 http http-status-code-404 http状态
下一篇:發布成功但回應是前端錯誤
