6

と という 2 つのオブジェクトがTrackありWalkthruます。それらは、 を介して相互にリンクされていTrackWalkthruAssociationます。TrackWalkthruが互いに関連付けられている場合(つまり、それらをリンクするインスタンスが存在する場合)、それらをリンクしているインスタンスが最初TrackWalkthruAssociationに削除されない限り、どちらも削除できません。TrackWalkthruAssociation

そのため、関連付けが存在する場合に、たとえばDELETEto/tracks/1またはを送信すると、失敗するはずです。/walkthrus/1この場合、適切な HTTP 応答コードは何でしょうか? これは予期しない状況ではないため、500 を返したくありません。

4

1 に答える 1

9

409 ('Conflict') を返しても問題ないと思います。

409 エラー応答は、REST API のリソースを不可能な状態または一貫性のない状態にしようとしたことをクライアントに伝えます。

あなたの場合、リンク自体の前にリンクされたリソースを削除すると、リソースがimpossible状態になります。

詳細とガイドラインは、RESTful Web APIまたはREST API Design Rulebookに記載されています。

于 2014-10-23T18:36:48.337 に答える