1. Introduction (はじめに)
1. Introduction (はじめに)
この仕様は, JSON merge patch (JSON マージパッチ) ドキュメント形式, 処理規則, および関連する MIME メディアタイプ識別子を定義します。マージパッチ形式は主に HTTP PATCH メソッド [RFC5789] で使用されることを目的としており, ターゲットリソースのコンテンツに対する一連の変更を記述する手段として機能します。
JSON マージパッチドキュメントは, 変更されるドキュメントに非常に類似した構文を使用して, ターゲット JSON ドキュメントに対して行われる変更を記述します。マージパッチドキュメントの受信者は, 提供されたパッチの内容とターゲットドキュメントの現在の内容を比較することにより, 要求されている正確な変更セットを決定します。提供されたマージパッチにターゲット内に存在しないメンバーが含まれている場合, それらのメンバーが追加されます。ターゲットにそのメンバーが含まれている場合, 値が置き換えられます。マージパッチ内の null 値には, ターゲット内の既存の値の削除を示す特別な意味が与えられます。
例えば, 次の元の JSON ドキュメントがあるとします:
{
"a": "b",
"c": {
"d": "e",
"f": "g"
}
}
"a" の値を変更し, "f" を削除するには, 次のように送信することで実現できます:
PATCH /target HTTP/1.1
Host: example.org
Content-Type: application/merge-patch+json
{
"a":"z",
"c": {
"f": null
}
}
ターゲットリソースに適用されると, "a" メンバーの値は "z" に置き換えられ, "f" は削除され, 残りのコンテンツはそのまま残ります。
この設計は, マージパッチドキュメントが主に構造にオブジェクトを使用し, 明示的な null 値を使用しない JSON ドキュメントへの変更を記述するのに適していることを意味します。マージパッチ形式は, すべての JSON 構文に適しているわけではありません。