2完全不同意200,这绝对应该是400范围内的内容。请参见https://dev59.com/cW445IYBdhLWcg3wmLdd。 - Jon
你需要在这方面再需要帮助吗? - benjiman
1个回答
9
9
你所描述的情况可以使用两种不同的响应代码来处理,如Richardson和Ruby在书籍RESTful webservices中所述:
400 Bad Request
当客户端提交一个PUT或POST请求时,常用此代码表示表示与请求一起提交的表现形式格式正确,但没有意义。因此,对于缺少或无效的参数使用它是完全可以的。然而,400是通用的客户端错误代码,您应该在响应体中向客户端提供一些进一步的信息。
409 Conflict
任何不能被服务器执行的请求都会使一个或多个资源处于不一致状态。因此,当用户尝试更改密码并且与旧密码的比较失败时,我会使用这个响应代码,就像您所描述的那样。 您还可以参考这个讨论REST HTTP status codes for failed validation or invalid duplicate。