我们有两个对象称为Track
和Walkthru
。它们通过TrackWalkthruAssociation
相互连接。如果Track
和Walkthru
是相互关联的(即,TrackWalkthruAssociation
实例将它们链接在一起),除非将链接到一起的TrackWalkthruAssociation
实例删除,否则不能删除任何一个。
因此,发送一个DELETE
到/tracks/1
或/walkthrus/1
,例如,当存在关联时,应该失败。为此,合适的http响应代码是什么?我不想退回500英镑,因为这不是意外情况。
最佳答案
猜猜,可以返回:409(“冲突”)。
409错误响应告诉客户机他们试图放置rest api的资源
陷入一种不可能或不一致的状态。
在这种情况下,如果在链接本身之前删除任何链接资源,则会将资源置于impossible
状态。
更多详细信息和指南请参见RESTful Web APIs或REST API Design Rulebook