REST に関するこのプレゼンテーション(タイムスタンプ 17:00-18:45) で、講演者は、HTTPPUT
にはリソースのすべてのプロパティを含める必要があり、部分的な更新には使用しないと述べています。これは HTTP で必要です。それ以外の場合はべき等ではありません。
彼の冪等性の定義は次のとおりです (これは合理的に聞こえます)。
べき等とは、1 回または複数回実行でき、同じサーバー状態になる操作です。
ただし、彼は次に例を挙げます (言い換えると):
リクエスト A: を使用し
PUT
て、リソースの name プロパティのみを更新します。リクエスト B: a を使用し
PUT
て、説明のみを更新します。A と B の間で別のクライアントが名前を指定でき、要求 B の後、リソースには他のクライアントの名前と私の説明が含まれます。リクエスト A と B の後でサーバーの状態が同じではないため、これはべき等操作ではありません。
この解釈についてはよくわかりません。私にとって、冪等性は、同じ操作を連続して複数回実行したときに何が起こるかについてのみ教えてくれます。上記の例では、リクエスト A と B は 2 つの異なる操作であるため、A を実行してから B を実行しても特別な保証が必要であると考える理由はありません。特に、それらが一緒になってアトミック操作を構成する必要があると考える理由はありません。
リクエスト A を複数回実行すると、(B の場合も同様に) 1 回実行するのと同じ効果が得られるため、(これがPUT
他の理由での不適切な使用であったとしても) 冪等であると考えたでしょう。
私の理解は間違っていますか?
(注: これはべき等性の意味に関する質問であり、 の適切な使用法ではありませんPUT
)。