由于业务异常而导致错误响应的Http状态。语法正确,要求有意义

Art*_*nko 5 rest http http-status-codes

关于正确的响应状态有很多问题,但是我不明白应该为正常的业务异常使用哪种状态。我已经读过400的定义,在我看来,它似乎是因为通讯错误。

由于某些东西被认为是客户端错误(例如,格式不正确的请求语法,无效的请求消息框架或欺骗性的请求路由),服务器无法或将不会处理请求。

可以说客户想要确认一些操作。他向我发送了我理解并处理的绝对正确,有效的请求。但是确认码不正确。因此,这是一个错误,但是此错误是正常现象,可以预料,我们的沟通是正确的。或另一个例子:客户想从帐户中提取一些钱。再次,请求是正确和有效的,但是帐户没有足够的钱。我现在要使用400,但是在我看来400是因为客户端和服务器之间的通信错误,而不是应用程序逻辑错误。也许对于此类错误有更合适的状态?你用什么?

yka*_*gol 5

对于这些情况,您可以使用 HTTP 422(不可处理实体)。我更喜欢这个规则来选择 http 状态代码:

  • 请求处理成功时的 HTTP 200、201、204
  • 当请求违反某些业务规则时 HTTP 422
  • HTTP 500 处理请求时发生意外异常

资源:一个不错的博客