【问题标题】:Should I response an HTTP 5xx or 4xx for business logic errors?对于业务逻辑错误,我应该响应 HTTP 5xx 还是 4xx?
【发布时间】:2018-04-08 17:41:47
【问题描述】:

如果我需要对我的业务逻辑进行一些验证,你会推荐什么状态码?

(例如)我必须验证用户名是否以前注册过。

我会用一个

400 错误请求

409 冲突

但我不确定这是否是最佳选择。

【问题讨论】:

    标签: .net rest http asp.net-web-api


    【解决方案1】:

    根据 HTTP 规范:应使用5xx 系列响应代码以防“服务器内部错误”——也就是说,由于开发人员(或sysadmin - 类似的东西)而不是网络服务的最终用户。

    4xx 表示“发送到服务器的数据有问题”,例如,404 用于客户端请求但不存在的资源,400 用于通用“错误请求” "(例如,XML 请求缺少必需的元素)。

    您为“用户名已注册”返回 HTTP 409 Conflict 的示例似乎很好,但严格来说,这只应在请求针对特定实体时使用。当请求路径不能唯一标识特定资源时,409 响应将不合适。

    【讨论】:

      猜你喜欢
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2020-06-29
      相关资源
      最近更新 更多