Ключевые моменты проектирования контрактов данных JSON API
Шесть вещей очень трудно изменить после выпуска: оболочки ответов, форматы ошибок, форма пагинации, представление ID и времени, семантика null против отсутствия и эволюция версий.
Как встроить JSON в реальные системы: как определять контракты API, как управлять конфигурацией и фикстурами, как обрабатывать совместимость версий и как поддерживать тестовые данные.
Статей: 5Шесть вещей очень трудно изменить после выпуска: оболочки ответов, форматы ошибок, форма пагинации, представление ID и времени, семантика null против отсутствия и эволюция версий.
Конфигурация должна быть слоистой и валидируемой; фикстуры должны быть детерминированными, читаемыми и diff-пригодными. Если эти два типа файлов управляются плохо, стоимость диагностики остаётся высокой долго.
Пятьдесят записей становятся пятьюдесятью одной, и diff сообщает о пятидесяти одном изменении. Рассматривает ложные срабатывания текстового diff, сопоставление массивов по id, нормализацию через jq и применимые патчи.
merge=union пропускает сломанный JSON и всё равно сообщает об успехе. Эта статья проходит через трёхсторонний драйвер слияния с учётом ключей для JSON плюс три привычки, сокращающие конфликты.
Добавление поля не автоматически безопасно. Рассматривает границы совместимости, поля версии, окна устаревания, миграцию с двойной записью, контрактные тесты и метрики канареечного развёртывания.