问题标题笼统地陈述了问题,但真实案例如下。
我的服务器具有以下 Web API:
为了调用第一个 API,所需时区和系统时区应该相等:即,如果有人更改了所需时区但尚未在系统范围内应用它,则设置日期时间的调用应返回错误。
换句话说,正确的事件顺序应该是:
change desired timezone --> apply configuration --> set datetime
问题 如果用户尝试在所需时区尚未在系统范围内应用的状态下设置日期时间,则返回哪个最合适的 HTTP 错误代码?
您认为这是用户错误(4xx)还是服务器错误(5xx)?
409? 503?还有别的东西吗?我愿意阅读您的解释。
提前致谢
2xx:成功 - 操作已成功接收、理解并接受
4xx:客户端错误 - 请求包含错误语法或无法满足
5xx:服务器错误 - 服务器无法满足明显有效的请求
我认为您应该返回 200。您的服务已收到消息并处理完毕。您可以返回基本的 HTML 消息或 JSON 字符串。例如。
{Success: true}, 或 {Success: false, ErrorReason: '尚未准备好,稍后再试'}
绝对不要使用 500。如果您想使用 400 代码,您可以使用以下选项:
423 锁定 [RFC4918]
424 依赖失败 [RFC4918]
[https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml][1] [https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses][2]