2
我有REST方法来更新用户配置文件。如果某些参数无效,系统应该返回哪个状态码?或者,例如,要更改密码,如果旧密码和DB中的密码不相等。 400错误的请求?无效数据的适当REST响应代码是什么?
我有REST方法来更新用户配置文件。如果某些参数无效,系统应该返回哪个状态码?或者,例如,要更改密码,如果旧密码和DB中的密码不相等。 400错误的请求?无效数据的适当REST响应代码是什么?
你描述能做什么和应使用两种不同的响应代码从理查森和Ruby的书RESTful webservices描述进行处理:
400错误的请求
这通常用于当客户端提交表示以及PUT或POST请求,并且表示格式正确,但没有任何意义。所以将它用于缺失或无效的参数是完全可以的。
然而,400是通用客户端错误代码,您应该在响应主体中为客户端提供一些其他信息。
409冲突
不能由服务器来执行,因为它会处于不一致的状态留一个或多个资源的任何请求。所以我会在用户尝试更改密码时使用此响应代码,并按照您所描述的与旧密码的比较失败。
你也可以看看这个讨论REST HTTP status codes for failed validation or invalid duplicate。
这不是一个错误的请求,这是一个有效的业务错误,这意味着200与一些错误信息 – JoseK
完全不同意200,这应该肯定是400范围内的东西。请参阅http://stackoverflow.com/questions/4781187/http-400-bad-request-for-logical-error-not-malformed-request-syntax – Jon
你需要更多的帮助吗? – benjiman