「セッション」というリソースがあるとします。クライアントはPUTを呼び出して、新しいセッションを作成して開始します。クライアントがセッションを終了すると、クライアントはアクセスできなくなりますが、履歴/アカウンタビリティ上の理由から存続する必要があります。HTTPメソッド:DELETEとPOST
セッションを終了するには、意味的に望ましい効果に近いDELETE要求を発行する方が適切でしょうか、またはリソースが実際に永久に削除されないのを見て、POSTしますか?
「セッション」というリソースがあるとします。クライアントはPUTを呼び出して、新しいセッションを作成して開始します。クライアントがセッションを終了すると、クライアントはアクセスできなくなりますが、履歴/アカウンタビリティ上の理由から存続する必要があります。HTTPメソッド:DELETEとPOST
セッションを終了するには、意味的に望ましい効果に近いDELETE要求を発行する方が適切でしょうか、またはリソースが実際に永久に削除されないのを見て、POSTしますか?
質問はここにあります:リクエストはidempotentですか?同じリクエストを2回実行すると、副作用がありますか?記事を注文するときと同じように、注文リクエストを2回実行すると、記事が2度表示されます。
その場合は、POST
が必要な方法です。そうでない場合は、PUT
またはDELETE
のいずれかを指定します。
セッションを削除しているようには見えないので、状態が変更された場合にのみ、PUT
が良い方法になります。これは、リソースが変更され、削除されないことを意味します。
編集:DELETE
がより適切と思われる
、リソースがクライアントから削除されるように表示された場合。物事が背中にどのように実装されているかは、クライアントにとって重要ではありません。
実際にはsession
を削除しないので、POSTリクエストはここでより良いでしょう。 POST要求は、オブジェクトの状態を変更するためによく使用されます。私が思うのはあなたのケースです。
クライアントの観点からリソースが「表示される」場合はどうなりますか?私の例では、2回目の呼び出しで副作用が発生せず、セッションでGETリクエストを発行できないため、リクエストは偶発的になります。 –