【问题标题】:What is the appropriate REST response code for invalid data?无效数据的适当 REST 响应代码是什么?
【发布时间】:2013-06-20 21:32:35
【问题描述】:

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

【问题讨论】:

  • 这不是一个错误请求,它是一个有效的业务错误,这意味着带有一些错误消息的 200
  • 完全不同意200,这绝对应该是400范围内的东西。见stackoverflow.com/questions/4781187/…
  • 您需要更多帮助吗?

标签: rest


【解决方案1】:

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

400 错误请求

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

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

409 冲突

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

你也可以看看这个讨论REST HTTP status codes for failed validation or invalid duplicate

【讨论】:

    猜你喜欢
    • 2011-09-01
    • 2017-12-20
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 2017-06-24
    • 2012-12-17
    相关资源
    最近更新 更多