簡単な質問:リソースでHTTP POST / PUTメソッドを介してデータ(コンテンツ)を送信していない場合はどうなりますか?それでもRESTfulですか?
明らかに、問題は、データなしでPUTを使用したい場合です。パスワードをリセットしたいユーザーを想像してみてください(この古いトピックのように)。
どう思いますか?POST / PUTメソッドでコンテンツを送信しなくても大丈夫ですか?個人的には問題ありませんが、他の人が何を言うのか気になります。
はい、これは完全に受け入れられます。データなしで実行された場合の各アクション(コレクションへのPOST、リソースへのPUT)は、新しい「空の」リソースを作成する必要があります。ここでの「空」の定義は、何が表現されているかによって異なります。
ただし、ユーザーのパスワードをリセットする特定のケースでは、上記のモデルが当てはまるとは言えません。本当にパスワードリソースがある場合、データのないPUTは、パスワードをリセットするのではなく、空に設定することを提案しているように見えます。このシナリオでは、その質問から受け入れられた回答を使用します。
RESTfulにするために、POSTまたはPUTのデータは必要ありません。べき等ではない(要求がリソースを変更または作成することを意味する)場合は、GETを使用しないでください(渡すデータがあるかどうかに関係なく)。たとえば、リクエストの時刻とリソースのURLヒットを、リソースを作成または変更するために必要なすべてのものと見なすRESTful Webサービスがあるとします。リクエストデータは必要ありません!