TGViewer
Системный Аналитик Системный Аналитик @sys_sa · 19.1K subscribers
Post #683 18K
⬇️ JSON Patch

JSON Patch — формат для описания изменений в JSON-документе
Вместо отправки документа для обновления, отправляется набор операций («патч»), которые нужно применить

⚫️экономит трафик, делает изменения предсказуемыми и атомарными
⚫️описан в стандарте RFC 6902


Примеры применения

🤩в RESTful API для частичного обновления ресурсов (PATCH-запросы)
🤩для синхронизации состояния между клиентами
🤩где важно версионирование
🤩в event-sourcing как событие


Пример

Исходно:
{ "user": "Иван", "age": 30 }

Патч (набор операций):
[
  { "op": "replace", "path": "/age", "value": 31 },
  { "op": "add", "path": "/city", "value": "Москва" }
]

Результат:
{ "user": "Иван", "age": 31, "city": "Москва" }



Особенности

➡️Строгий формат операций
RFC 6902 определяет только 6 операций:
- add
- remove
- replace
- move
- copy
- test

Расширять этот набор другими операциями нельзя, если нужно сохранить совместимость с системами, реализующими  RFC 6902


➡️Применяется атомарно
Если любая операция в массиве завершается ошибкой (например, путь не найден для remove, или операция test возвращает false), весь патч должен быть откачен, и документ остается без изменений
Это гарантирует целостность

➡️Операции применяются последовательно
Последующие могут зависеть от результата предыдущих
⚫️Пример: чтобы переместить (move) данные из /a в /b, сначала убедиться, что /b не существует, или удалить его в предыдущей операции


JSON Patch vs JSON Merge Patch

✨JSON Merge Patch (RFC 7396) - простой формат для слияния JSON-документов
Отправляется фрагмент, который нужно "наложить" на целевой документ:
- значения заменяются
- null означает "удалить поле"
- отправляются только изменяемые поля

Когда использовать

🤩Merge Patch — для простых обновлений объектов (конфиги, настройки пользователя)
🤩JSON Patch — когда нужна точность: работа с массивами, контроль целостности, синхронизация


📎 Материалы
1. Оптимизация трафика при синхронизации состояний через Jsonpatch
2. Убегайте от праздника «пустых» проверок: правильно выполняйте PATCH с помощью JSON Patch

#проектирование #api

➿➿➿➿➿➿➿➿
🧑‍🎓 Больше полезного в базе знаний по системному анализу
  • ❤ 17
  • 🔥 12
  • 👍 6
  • 💩 2
  • 👏 1
More from @sys_sa
  1. Sep 26, 2026Как облегчить работу ИТ-аналитика уже сейчас — без долгосрочных перестроек процессов? Обсу…
  2. Sep 24, 2026️️️️️️️️📚Курс: «Системный аналитик. Экспертный уровень». За 146 часов обучения получите а…
  3. Aug 28, 2026❓ ICAM (Incident Cause Analysis Method) ICAM (Incident Cause Analysis Method) — метод разб…
  4. Aug 19, 2026🖥 NewSQL NewSQL — класс реляционных СУБД, который совмещает привычный SQL и строгие ACID…
  5. Jul 14, 2026🔼 Server Driven UI (SDUI) Server Driven UI (SDUI) — архитектурный подход, при котором сер…
  6. Jul 7, 2026📊 Сравнение Баз данных и Хранилищ данных ▫️База данных – оперативное хранилище, где содер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →