TGViewer
biozz.dev biozz.dev @biozz_dev · 85 subscribers
Post #95 146
JSONPatch

Частый спор про изменение объекта по API — это как передавать данные. Я встерчал 3 подхода:

• передавать полностью весь объект
• передавать только поля, которые нужно изменить
• отдельные API для изменения конкретных полей объекта

Кто напишет про GraphQL, gRPC и др., тот хрюшка.

Для варианта передачи только полей, которые изменились, нужна какая-то обвязка. В Python сейчас стандарт — Pydantic. Раньше мы мучались с тем, как обрабаывать None, а сейчас есть foo.model_dump(exclude_unset=True). И вроде как всё ок, но это только Python.

Оказывается, есть стандарт — https://jsonpatch.com/. Но и в нём есть, к чему придраться — это то, как указывается путь до ключа path, который напоминает unix-овые пути. А ведь уже есть несколько других стилей:

• JSONPath (самый очевидный)
• jq (самый хипстерский)
• JSON Path Expressions в SQL (самый занудный)
• JSONata (не то, чтобы стиль, но заслуживает внимания)

Короче, я хочу JSONPatch, который использует JSONPath для путей.

С другой стороны это мелочи по сравнению с тем, что операции в JSONPatch — это по сути история изменений объекта, которую можно хранить, не храня снапшоты объектов. (вспоминаю django-reversion)
More from @biozz_dev
  1. Sep 19, 2026Кто-то ещё пишет руками bash-скрипты? 🤔 https://biozz.dev/blog/bash-and-llm/
  2. Aug 10, 2026Канальчик немного приуныл, уж очень увлекся другими проектами. Например такой — https://t.…
  3. Nov 12, 2025#ДваИвана #инциденты 🎙Что общего между фатализмом, каршерингом и ИТ? Спойлер: всё ломаетс…
  4. Oct 17, 2025#ДваИвана #системныйанализ 🎙Два Ивана продолжают экспедицию по ИТ-направлениям: на горизо…
  5. Oct 7, 2025В моем окружении немного тех, кто впечатлен прогрессом ЛЛМ также, как я. И когда я делюсь…
  6. Oct 6, 2025Нужен перерыв от «простое в сложном» и Notebase. Небольшой творческий пет-проект под назва…
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 →