在我的 RESTful API 客户端可能会尝试发布已经在数据库中的信息,这不是错误,而是客户端可以忽略的东西,可能会通知用户已经存在的重复项。
现在我在响应正文中返回 409 Conflict 和已经存在的对象。我觉得这是不正确的,因为:
由于与资源的当前状态冲突,无法完成请求。仅在预期用户可能能够解决冲突并重新提交请求的情况下才允许使用此代码。响应正文应该包含足够的信息让用户识别冲突的来源。理想情况下,响应实体将包含足够的信息供用户或用户代理解决问题;但是,这可能是不可能的,也不是必需的。 通过restpatterns.org
总的来说,409 似乎与 PUT 更相关。
在这种情况下,正确的反应是什么?会不会是 303 See Other and Location 标头?