我正在處理一個restful API後端,我們只使用json作爲內容類型。據我所知,有兩種方式執行錯誤響應:REST API錯誤返回,是否包含HTTP狀態代碼
- HTTP狀態碼始終爲200,返回的json應該包含錯誤代碼和錯誤消息。
- 將HTTP狀態碼視爲我們的API的一部分,我們可能會選擇HTTP錯誤碼(4XX)爲相應的錯誤狀態。我們可以在有效載荷中包含一個json文檔,以包含一個子代碼和一個描述性評論。
我想知道哪一個更適合寧靜的服務嗎?
我正在處理一個restful API後端,我們只使用json作爲內容類型。據我所知,有兩種方式執行錯誤響應:REST API錯誤返回,是否包含HTTP狀態代碼
我想知道哪一個更適合寧靜的服務嗎?
一般來說,我不會主張總是返回了200元。有跡象表明,匹配普遍接受的狀態碼的故障情況。以上,有人提到403,當訪問被拒絕時,你提供了403。當事情真的向南時,500通常由web/app服務器發佈。如果找不到某個資源的記錄,則爲404。
所以,我對做主張:
您需要同時使用兩者。
HTTP狀態:使用此處理請求的狀態。例如,如果您查詢數據庫並且沒有找到任何條目,那麼您仍然會返回200.如果該用戶未被授權,則403,如果SQL連接數超過500,依此類推。
API狀態:如果DB請求成功,你會發現沒有條目,包括在你的JSON {status: NO_ENTRIES }
或{ status: DEPRECATED_API }
的自定義字段。在這些情況下,響應代碼仍然是200
總是返回H TTP狀態爲200,但是使用API狀態來表示相應的錯誤?我看到很多公司都這麼做。 – realli
我給了你一個例子。如果您的服務器遇到服務器錯誤,請說內存不足或上述內容,您應該在json回覆中拋出500,Ann仍然可以添加一條錯誤消息,告訴客戶端。 – prakharsingh95
將您的代碼,您使用哪種技術或庫進行服務器通信?t – Gaurav