5

我有 REST 方法来更新用户配置文件。如果某些参数无效,系统应该返回哪个状态码?或者,例如,更改密码,如果数据库中的旧密码和密码不相等。400 错误请求?

4

1 回答 1

9

您所描述的可以而且应该使用Richardson 和 Ruby的 Book RESTful webservices中描述的两种不同的响应代码来处理:

400 错误请求

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

但是 400 是通用的客户端错误代码,您绝对应该在响应正文中向客户端提供一些进一步的信息。

409 冲突

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

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

于 2013-06-24T14:59:26.237 回答