关于正确的响应状态有很多问题,但我无法理解我应该将哪种状态用于正常的业务异常。我已经阅读了400的定义,在我看来,它似乎是因为沟通中的错误。
由于某些原因,服务器无法或不会处理请求 被认为是客户端错误(例如,格式错误的请求) 语法,无效请求消息框架或欺骗性请求 路由)。
让我们说客户想确认一些操作。他向我发送了绝对正确,有效的请求,我理解和处理。但确认码不正确。所以这是一个错误,但这个错误是正常的和预期的,我们的沟通是正确的。或者另一个例子:客户希望从账户中提取一些钱。同样,请求是正确且有效的,但帐户没有足够的钱。我现在要使用 400 ,但 400 在我看来是客户端和服务器之间的通信错误,而不是应用程序逻辑中的错误。也许这种错误有更合适的状态?你用什么?
答案 0 :(得分:2)
您可以在这些情况下使用HTTP 422(不可处理的实体)。我更喜欢这个规则来选择http状态代码:
资源:A nice blog