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

Viv*_*ath 6 api rest http http-response-codes

我们有两个叫做Track和的对象Walkthru.它们通过一个相互联系TrackWalkthruAssociation.如果一个TrackWalkthru彼此相关联(即,TrackWalkthruAssociation实例存在一起将它们连接起来),既不除非一个可以删除TrackWalkthruAssociation链接在一起例如,被删除的第一.

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

Gri*_*nov 8

猜猜,可以回复:409('冲突').

409错误响应告诉客户端他们试图将REST API的资源置于不可能或不一致的状态.

在您的情况下,如果您在链接本身之前删除任何链接的资源,则将资源置于该impossible状态.

可以在RESTful Web APIREST API设计规则手册中找到更多详细信息和指南