これは、私を悩ませてきた何かの概念的な完全性の問題です。
HTTP の DELETE メソッドはべき等であると想定されており、REST の URI は実際に物事を表すと想定されています。しかし、それは逆方向にのみ定義されているようです: 各リソースには 1 つの URI が必要ですが、特定の URI にはリソースが必要ないようです。もっと慈善的には、空/ヌルのリソースを指すように URI を定義できると思います。
これが実際に関連していると思われるのは、DELETE 要求の場合だけです。どこに置くのがベスト?example.com/users/
削除するリソースを識別するコンテンツを使用するか、それともexample.com/users/USERNAME
優れていますか?
DELETE のコンテンツは、HTTP と REST で問題ないようです。(概念的に: 他の SO の質問によると、さまざまなフレームワークは、処理する前に DELETE 要求からコンテンツを静かに削除します。)
だからここに私の考えがあります:すべての例は後者のスキームを使用しているようです-親コレクションのURIからリソースを削除するのではなく、そのURIでリソースを削除しています- しかし、DELETEが成功した後、リソースは存在しなくなります。その場合、URI は大声で失敗するはずです。しかし、それでは DELETE の冪等性が無効になるため、削除する実際のリソースを指定するコンテンツを使用して、DELETE はコレクションに対して操作する必要があると考えるようになりました。
明らかに、誰もが私が好きではないことをしているだけであり、おそらくユーザーの正気のためにそれに同意する必要がありますが、これが明確に説明されている場所、または私が見逃している明らかなことが間違いを犯している場所はありますか? ?