Definition
RFC 6902 - un formato para expresar una secuencia de operaciones a aplicar a un documento JSON. Usa un array de operaciones (add, remove, replace, move, copy, test) con rutas JSON Pointer.
Example
Para reemplazar el email de un usuario y eliminar teléfono: [{“op”: “replace”, “path”: “/email”, “value”: “[email protected]”}, {“op”: “remove”, “path”: “/phone”}]
Analogía
Como instrucciones quirúrgicas precisas - cada operación es explícita (corta aquí, sutura allá, remueve esto) en lugar de solo describir el resultado final.
Code Example
// JSON Patch request
PATCH /users/123
Content-Type: application/json-patch+json
[
{ "op": "replace", "path": "/email", "value": "[email protected]" },
{ "op": "remove", "path": "/phone" },
{ "op": "add", "path": "/verified", "value": true },
{ "op": "test", "path": "/age", "value": 30 },
{ "op": "move", "from": "/oldAddress", "path": "/address" },
{ "op": "copy", "from": "/email", "path": "/backupEmail" }
]
// Operations explained
// add: Insert/add a value
// remove: Delete a field
// replace: Update a value
// test: Assert a value (fails patch if doesn't match)
// move: Relocate a value
// copy: Duplicate a value
// Using fast-json-patch library
const jsonpatch = require('fast-json-patch');
const document = { name: "Alice", age: 30 };
const patch = [{ op: "replace", path: "/age", value: 31 }];
const result = jsonpatch.applyPatch(document, patch).newDocument;
Standards & RFCs
Standards & RFCs