1. Introduction (Introduzione)
1. Introduction (Introduzione)
Questa specifica definisce il formato del documento JSON merge patch (patch di fusione JSON), le regole di elaborazione e l'identificatore del tipo di media MIME associato. Il formato del patch di fusione è destinato principalmente all'uso con il metodo HTTP PATCH [RFC5789] come mezzo per descrivere un insieme di modifiche al contenuto di una risorsa di destinazione.
Un documento di patch di fusione JSON descrive le modifiche da apportare a un documento JSON di destinazione utilizzando una sintassi che imita da vicino il documento in fase di modifica. I destinatari di un documento di patch di fusione determinano l'insieme esatto delle modifiche richieste confrontando il contenuto del patch fornito con il contenuto corrente del documento di destinazione. Se il patch di fusione fornito contiene membri che non appaiono nella destinazione, tali membri vengono aggiunti. Se la destinazione contiene il membro, il valore viene sostituito. I valori null nel patch di fusione hanno un significato speciale per indicare la rimozione dei valori esistenti nella destinazione.
Ad esempio, dato il seguente documento JSON originale:
{
"a": "b",
"c": {
"d": "e",
"f": "g"
}
}
La modifica del valore di "a" e la rimozione di "f" possono essere ottenute inviando:
PATCH /target HTTP/1.1
Host: example.org
Content-Type: application/merge-patch+json
{
"a":"z",
"c": {
"f": null
}
}
Quando applicato alla risorsa di destinazione, il valore del membro "a" viene sostituito con "z" e "f" viene rimosso, lasciando intatto il contenuto rimanente.
Questo design significa che i documenti di patch di fusione sono adatti per descrivere modifiche a documenti JSON che utilizzano principalmente oggetti per la loro struttura e non fanno uso di valori null espliciti. Il formato del patch di fusione non è appropriato per tutte le sintassi JSON.