我应该回应HTTP 5xx或4xx的业务逻辑错误吗?

时间:2015-04-08 19:29:11

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

如果我需要对我的业务逻辑进行一些验证,您会建议我使用哪种状态代码?

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

我使用

  

400错误请求

  

409冲突

但我不确定它是否是最好的选择。

1 个答案:

答案 0 :(得分:0)

根据HTTP规范:如果出现"内部服务器错误,则应使用5xx系列响应代码" - 也就是说,在Web服务器中发生了一些不好的事情,这是开发人员(或系统管理员 - 这种性质的事情)的错,而不是网络服务的最终用户。

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

您为"用户名返回HTTP 409 Conflict的示例已经注册"看起来很好,但严格地说,只有当请求在特定实体上时才应该使用。当请求路径未唯一标识特定资源时,409响应将不合适。