簡體   English   中英

REST API錯誤返回,是否包含HTTP狀態代碼

[英]REST API error return, include HTTP status code or not

我正在開發一個寧靜的API后端,並且我們僅使用json作為內容類型。 據我所知,有兩種執行錯誤響應的方法:

  1. HTTP狀態代碼始終為200,返回的json應包含錯誤代碼和錯誤消息。
  2. 將HTTP狀態代碼視為我們API的一部分,我們可能會根據相應的錯誤情況選擇HTTP錯誤代碼(4XX)。 我們可以在有效負載中包含一個json文檔,以包含一個子代碼和一個描述性注釋。

我想知道哪一種更適合休閑服務?

您需要同時使用兩者。

  1. HTTP狀態 :使用它來處理請求的狀態。 例如,如果查詢數據庫,但沒有找到條目,則仍將返回200。如果未授權用戶,則返回403,如果SQL連接數超過500,以此類推。

  2. API狀態 :如果數據庫請求成功,但您找不到任何條目,請在json {status: NO_ENTRIES }{ status: DEPRECATED_API }包含一個自定義字段。 在這些情況下,響應代碼仍為200。

一般來說,我不主張總是返回200。有些失敗情況與普遍接受的狀態代碼相匹配。 上面提到了有人403,當訪問被拒絕時您將提供它。 當事情真的很嚴重時,通常由Web /應用程序服務器發出500。 404,如果找不到資源的任何記錄。

因此,我主張:

  1. 至少搭配200、403、404、500
  2. 在JSON錯誤響應中提供盡可能詳細的錯誤詳細信息
  3. 記錄您的API可能傳遞的每個錯誤代碼-HTTP狀態代碼和每個子條件錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM