有一種情況,為了滿足 API 消費者的請求,我們正在回呼消費者以獲取額外資料,而額外資料可能無效。在這種情況下,我們應該使用 400 Bad Request HTTP 狀態代碼還是 500 Internal Server 回應,因為我們收到了有效的請求,但由于狀態錯誤而無法滿足請求,因此最佳實踐是什么?提前致謝。

uj5u.com熱心網友回復:
如果請求本身的格式沒有問題,但其他資源的狀態有問題,我認為有兩種可能的方法來考慮這個問題:
- 如果客戶負責“附加資料”,并且他們可以修復這些資料,則
409 Conflict可能是最合適的。如果修復了“附加資料”的錯誤狀態,則409有效地表明客戶端發送的請求將來可能是正確的。 - 如果“附加資料”是客戶幾乎無法控制的系統內部部分,我覺得
5xx-category 錯誤是最正確的。請求沒問題,但內部問題導致它失敗。客戶并不關心它是否涉及不同的系統。事實上,它確實是一個實作細節。
uj5u.com熱心網友回復:
HTTP 錯誤代碼可以根據服務將使用客戶端提供的附加資料執行的操作來定義。如果是用于搜索操作,那么您可以將 404 用于未找到的資源或 400 用于格式錯誤或無效的資料。5xx 系列本質上是非常敏感的,這意味著如果 5xx 回傳,您的客戶端可能定義了許多額外的作業流程,例如重試(標準或長),這可能最終在處理實時資料時出現麻煩的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/355980.html
