2016-08-24 98 views
0

我正在编写一个REST服务,并且一些推送请求只会在某个时间窗口内工作。例如在活动工作时间。在这些时间之外,服务器将发送错误。如果服务器状态无效,则发送Http状态码?

我看过可用的HTTP状态代码,我不确定哪一个最适合申请“无效服务器状态”或等效情况。我正在考虑400(错误请求)或422(不可处理实体)?

对于422,definition我有“这个请求是格式良好的,但由于语义错误而无法遵循。”并想知道这是否是最适用的情况?

+0

如果是服务器端问题,为什么不使用5xx服务器错误代码之一? –

+0

说,500或503? –

+0

一般情况下,当某些事情被破坏时,我会看到5xx代码。在技​​术上没有任何东西被破坏,而是客户要求在操作之前,通过可以验证的参数来做一些无法实现的事情。客户可以在单独的请求中询问可接受的工作时间。 –

回答

1

400 Bad Request看起来像对我的正确回应。这绝对是一个客户端错误,但请求本身没有任何问题;只是请求的时间。如果答复机构包含了一些额外的信息来说明问题(如“我们的办公室已关闭,请在星期一至星期五格林尼治标准时间上午9点到下午5点之间提出请求”),那么您已成功使用以适当的方式提供一个简单而常见的答复类型。这使得一个好的API。

作为补充说明;我会说422的原因不太正确的原因是请求的含义是明确的。这只是一个计时问题,没有语义错误。