2017-07-14 59 views
0

在我的API中,我應該返回哪個HTTP狀態代碼以防出現非關鍵服務器錯誤?非關鍵服務器錯誤的HTTP狀態代碼

例如,SomeMethod被調用,但失敗,因爲null傳遞,或者嘗試訪問數據庫時可能出現一些錯誤,無論如何。

我想過代碼,但它的使用時,服務器不會在所有的工作, 而SomeMethod作品只有當一切是正確的。

當然,響應主體包含錯誤及其描述。

+0

https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – xenteros

+0

@xenteros我讀過所有這些,所以我應該選擇哪個? –

+0

當你說錯誤不重要時,這是否意味着你能夠優雅地處理錯誤? – Catalyst

回答

1

由於沒有針對「非嚴重錯誤」的特定HTTP代碼,因此我所能做的只是告訴您我的意見,即使用200並打印異常類似的響應。

正如你在評論中所說 - 你能夠正常處理內部錯誤,所以只需向客戶端拋出一個異常,以解釋爲什麼他的請求失敗(「爲什麼」可能類似「內部數據庫錯誤」) 。

+0

好的,客戶的期望如何,** 200 **總是很好?或者這只是一個文檔問題? –

+0

@YuriyN,我可以從我的工作場所爲您舉例,它開發了API。如果發生這樣的錯誤,我們會拋出一個異常,並且我們將它發送給200,並且它非常好。 :) – Catalyst

+0

似乎你是對的,沒有辦法,除了返回特殊的錯誤列表。 –

1

如果這些「非關鍵性錯誤」是由從客戶端(例如,錯誤的數據類型)一個錯誤的輸入引起的,則應該使用客戶端錯誤狀態代碼400(錯誤請求)

下面是從standard其描述:

400(錯誤請求)狀態代碼表示該服務器不能或 不會請求過程中由於一些被認爲是 客戶端錯誤(例如格式不正確的請求語法,無效的請求消息成幀或欺騙性請求路由)。

+0

它們不是由錯誤的輸入引起的,錯誤的輸入已經由** 400 **處理過了。 –

相關問題