2016-08-24 97 views
0

我正在編寫一個REST服務,並且一些推送請求只會在某個時間窗口內工作。例如在活動工作時間。在這些時間之外,服務器將發送錯誤。如果服務器狀態無效,則發送Http狀態碼?

我看過可用的HTTP狀態代碼,我不確定哪一個最適合申請「無效服務器狀態」或等效情況。我正在考慮400(錯誤請求)或422(不可處理實體)?

對於422,definition我有「這個請求是格式良好的,但由於語義錯誤而無法遵循。」並想知道這是否是最適用的情況?

+0

如果是服務器端問題,爲什麼不使用5xx服務器錯誤代碼之一? –

+0

說,500或503? –

+0

一般情況下,當某些事情被破壞時,我會看到5xx代碼。在技​​術上沒有任何東西被破壞,而是客戶要求在操作之前,通過可以驗證的參數來做一些無法實現的事情。客戶可以在單獨的請求中詢問可接受的工作時間。 –

回答

1

400 Bad Request看起來像對我的正確迴應。這絕對是一個客戶端錯誤,但請求本身沒有任何問題;只是請求的時間。如果答覆機構包含了一些額外的信息來說明問題(如「我們的辦公室已關閉,請在星期一至星期五格林尼治標準時間上午9點到下午5點之間提出請求」),那麼您已成功使用以適當的方式提供一個簡單而常見的答覆類型。這使得一個好的API。

作爲補充說明;我會說422的原因不太正確的原因是請求的含義是明確的。這只是一個計時問題,沒有語義錯誤。