2017-05-07 20 views

回答

1

狀態500(服務器錯誤)對我最有意義。

  • 200成功
  • 300 rediret
  • 400客戶端錯誤(我)
  • 500服務器錯誤(你)

您還沒有添加我張貼到你的對象,成數據庫,所以你返回500.這樣我可以捕捉到錯誤。

編輯解釋狀態碼好一點:

  1. ,除非有一個與職位的成功不要返回200。你永遠不想回復200消息「沒有工作」
  2. 如果我發送給你一個錯誤的對象/信息,以保存你應該發送400
  3. 如果你的一端的連接丟失或有問題插入聲明500可能最適合。

此外:您可以隨時通過狀態碼發送詳細消息。但取決於使用此服務的用戶,請小心不要暴露/發送類似sql錯誤的信息。

+0

500:_遇到一個**意外情況**時發出的一般性錯誤消息,**沒有更具體的**消息適用._我不這麼認爲 –

+0

沒有任何東西阻止您發送500信息。當出現問題時實際返回錯誤要好得多,這樣我就可以抓住而不是取得「沒有工作」的成功 此外,海報給出了丟失連接的示例,這是一個503. – Bergur

+0

是,_But如果OP沒有任何內容,我應該返回 - 這不一定意味着發生了內部錯誤 –

-1

你應該使用狀態代碼(204 ==>無內容)

+1

僅限於有意不添加任何數據而不是由於錯誤。此外,204意味着什麼都沒有返回給客戶端,並不一定意味着什麼都沒有被添加到數據庫。 – fiskeben

+0

你不需要在JS中識別這個特殊情況嗎?你可以設置你想要的響應頭,你應該解釋更多你的問題 –

0

如果原因是某種形式的客戶端錯誤的數據,你應該在400範圍內使用狀態,最有可能的422. 如果原因是由於後端出現了一些錯誤,您應該使用500範圍內的一個。有許多不同的狀態代碼可供使用。您應該閱讀它們並使用適用於您的方案的方法。

This is a good resource on HTTP statuses

1

根據什麼是你的使用情況,您可以:

新對象違反條件 - 無論是它已經存在(唯一約束)或其他一些驗證

- >然後用一些返回422 Unprocessable Entity旁邊錯誤信息在正文中。

你是做服務器端重複數據刪除 - 要優雅地發送新的對象,而不是關心在客戶端重複

- >要麼假裝一切正常,即201 Created並返回原來的現有對象爲響應。或與201 Created各州之間存在明顯的新記錄對象,並303 See other與原記錄爲URL或只是204 No content

有保存該預計將被記錄

東西時在服務器端意外的錯誤 - >500 Server Error

相關問題