2016-12-16 93 views
0

我們有一個REST服務,其中對請求的響應可能是錯誤消息。一個簡單的例子是請求是一個計算公式,公式可能會除以零。在這種情況下,響應是錯誤代碼和錯誤消息。當響應數據是錯誤消息時,我們應該在REST響應中使用什麼響應代碼

所以與REST服務的通信都很好。服務本身正在響應請求。但是,響應是一個錯誤消息,而不是預期的結果。

在這種情況下,最好的響應代碼是什麼? 200來說,整個通信過程是好的,我們查看返回的JSON以確定它是否是一個錯誤? 500表示這是一個錯誤,但後來看看我們是否有預期的JSON來確定它是計算中的錯誤?其他一些代碼表示我們正在從服務器獲取響應,但響應是錯誤消息?

+0

如果計算是用戶輸入的結果,則50x聽起來不對。 40x代碼似乎都不適合,所以我會用普通的400. –

回答

1

一個簡單的例子是該請求是一個公式來計算和公式可以通過零具有分頻。 [...]在這種情況下,最好的響應代碼是什麼?

我會使用422無法處理的實體

的422(無法處理的實體)狀態代碼表示的服務器理解的請求實體(因此一個415(不支持的媒體類型)的狀態碼的內容類型是不恰當的),並且請求實體的語法是正確的(因此400(錯誤請求)狀態碼不合適),但無法處理包含的指令。例如,如果XML請求體包含格式正確(即,語法正確)但語義錯誤的XML指令,則可能會出現此錯誤情況。

不要依賴在HTTP代碼,無論如何,總是在身體添加錯誤的描述。我認爲通常的做法是讓所有終端以success(true或false)和error(帶有錯誤消息)的方式回覆JSON,如果success爲false,或者data(結果爲),如果成功爲true。

+0

謝謝 - 這正是我們正在尋找的! –

相關問題