PATCH
要求はリソースに適用される操作のセットを記述します。同じリソースに同じ操作のセットを2回適用する場合、結果は同じではない場合があります。これは、操作を定義するのはあなた次第だからです。つまり、マージルールを定義する必要があります。
PATCH
JSONだけでなく、さまざまな形式のリソースにパッチを適用するためにリクエストを使用できることを忘れないでください。
したがって、マージルールをべき等になるように定義すると、PATCH
リクエストはべき等になる可能性があります。
べき等の例:
// Original resource
{
name: 'Tito',
age: 32
}
// PATCH request
{
age: 33
}
// New resource
{
name: 'Tito',
age: 33
}
非べき等の例:
// Original resource
{
name: 'Tito',
age: 32
}
// PATCH request
{
$increment: 'age'
}
// New resource
{
name: 'Tito',
age: 33
}
2番目の例では、属性をインクリメントするために作成した「Mongo like」構文を使用しました。同じリクエストを複数回送信すると毎回異なる結果になるため、明らかにこれはdem等ではありません。
今、あなたはそのような構成された構文の使用が有効かどうか疑問に思うかもしれません。規格によると、次のとおりです。
PUT要求とPATCH要求の違いは、サーバーが囲まれたエンティティを処理してRequest-URIで識別されるリソースを変更する方法に反映されます。PUTリクエストでは、同封されたエンティティは、オリジンサーバに保存されたリソースの修正バージョンと見なされ、クライアントは保存されたバージョンの置き換えを要求しています。ただし、PATCHの場合、囲まれたエンティティには、オリジンサーバーに現在存在するリソースを新しいバージョンを生成するためにどのように変更する必要があるかを説明する一連の命令が含まれています。
また、この方法でリクエストを使用するのは安らかなのかと疑問に思うかもしれませんがPATCH
、多くの人はそうではないと考えています。この問題に関する多くのコメントを含む良い答えがあります。
{"name": "bendjamin franklin"}