找到重复项时,REST POST请求的响应状态代码是什么?

mic*_*euz 18 rest post http http-response-codes restful-architecture

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

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

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

而且一般来说,409似乎与PUT更相关.

在这种情况下,正确的答案是什么?可能是303看到其他和位置标题?

sui*_*ing 15

我不确定答案是否正确.我们返回409,其中包含一条重复资源的消息.我们还在该资源中包含超媒体.看来你也可以使用400 - Bad Request,但这似乎太通用了.我可以看到303也在工作.我想表明存在错误,所以我们选择了409.