约束失败时应返回什么HTTP响应代码?

时间:2014-10-23 18:21:40

标签: api rest http http-response-codes

我们有两个名为TrackWalkthru的对象。它们通过TrackWalkthruAssociation相互关联。如果TrackWalkthru彼此关联(即,TrackWalkthruAssociation实例存在将它们链接在一起),除非链接它们的TrackWalkthruAssociation实例,否则不能删除任何一个实例一起删除第一

因此,例如,当存在关联时,将DELETE发送到/tracks/1/walkthrus/1会失败。对于这个,适当的HTTP响应代码是什么?我不想返回500,因为这不是一个意想不到的情况。

1 个答案:

答案 0 :(得分:8)

猜猜,可以返回:409('冲突')。

409错误响应告诉客户端他们试图放置REST API的资源     进入一个不可能或不一致的状态。

如果您在链接本身之前删除任何链接资源,则会将资源置于impossible状态。

更多细节&可以在RESTful Web APIsREST API Design Rulebook

中找到相关指南