什么是适用于无效数据的REST响应代码?

时间:2013-06-24 11:30:27

标签: rest

我有REST方法来更新用户个人资料。如果某些参数无效,系统应返回哪个状态代码?或者,例如,要更改密码,如果DB中的旧密码和密码不相等。 400 Bad request?

1 个答案:

答案 0 :(得分:4)

您所描述的内容可以并且应该使用Richardson和Ruby的书籍RESTful webservices中描述的两个不同的响应代码来处理:

400错误请求

这通常在客户端提交表示以及PUT或POST请求时使用,并且表示格式正确,但它没有任何意义。所以将它用于缺失或无效的参数是完全可以的。

然而,400是通用客户端错误代码,您肯定应该在响应正文中为客户端提供一些其他信息。

409冲突

服务器无法执行的任何请求,因为它会使一个或多个资源处于不一致状态。因此,当用户尝试更改密码并且与旧密码的比较失败时,我会使用此响应代码。

您还可以查看此讨论REST HTTP status codes for failed validation or invalid duplicate