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



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

由于某些原因,服务器不能或不愿处理请求这被认为是客户端错误(例如,格式错误的请求)语法、无效请求消息帧或欺骗性请求路由)。

假设客户端想要确认某些操作。他给了我绝对正确、有效的请求,我理解并处理。但是确认码不正确。这是一个错误,但这个错误是正常的,我们的沟通是正确的。或者另一个例子:客户想从账户中提取一些钱。同样,请求是正确和有效的,但账户没有足够的钱。我现在要使用400,但是400对我来说似乎是客户端和服务器之间通信的错误,而不是应用程序逻辑。也许这类错误有一个更合适的状态?你用什么?

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

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

资源:一个不错的博客

相关内容

最新更新