【问题标题】:What's a proper response status code to REST POST request when duplicate is found?找到重复项时对 REST POST 请求的正确响应状态代码是什么?
【发布时间】:2012-03-13 22:28:35
【问题描述】:

在我的 RESTful API 中,客户端可能会尝试发布数据库中已经存在的信息,这不是错误,而是客户端可以忽略的内容,可能会通知用户已经存在的重复项。

现在我在响应正文中返回 409 Conflict 和已经存在的对象。我觉得不对,因为:

由于与当前的冲突,请求无法完成 资源的状态。仅在以下情况下才允许使用此代码 预计用户可能能够解决冲突,并且 重新提交请求。响应正文应该包含足够的 供用户识别冲突来源的信息。 理想情况下,响应实体将包含足够的信息 用户或用户代理来解决问题;但是,这可能不是 可能而且不是必需的。 via restpatterns.org

一般来说,409 似乎与 PUT 更相关。

在这种情况下,正确的反应是什么?会不会是 303 See Other and Location header?

【问题讨论】:

    标签: http rest post restful-architecture http-response-codes


    【解决方案1】:

    我不确定是否有正确答案。我们返回 409 并显示它是重复资源的消息。我们还将超媒体包含在该资源中。看来您也可以使用 400 - Bad Request 但这似乎太笼统了。我可以看到 303 也可以工作。我想指出有一个错误,所以我们选择了 409。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-24
      • 2018-02-12
      • 2019-02-21
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多