Ключові моменти проєктування контрактів даних JSON API
Шість речей дуже важко змінити після релізу: обгортки відповідей, формати помилок, форма пагінації, подання ID і часу, семантика null проти відсутності та еволюція версій.
Впровадження JSON у реальні системи: як визначати контракти API, керувати конфігурацією й тестовими даними, обробляти сумісність версій і підтримувати тестові дані.
Статей: 5Шість речей дуже важко змінити після релізу: обгортки відповідей, формати помилок, форма пагінації, подання ID і часу, семантика null проти відсутності та еволюція версій.
Конфігурація має бути шаруватою й перевіреною; тестові дані — детермінованими, читабельними й оглядопридатними. Якщо цими двома видами файлів керувати погано, ціна діагностики довго залишається високою.
Пʼятдесят записів стають пʼятдесятьма одним, і diff повідомляє про пʼятдесят одну зміну. Охоплює хибні сигнали текстового diff, зіставлення масивів за id, нормалізацію jq і придатні патчі.
merge=union пропускає зламаний JSON і все одно повідомляє про успіх. Розбирає драйвер тристороннього злиття JSON, що враховує ключі, плюс три звички, що скорочують конфлікти.
Додавання поля не є автоматично безпечним. Охоплює межі сумісності, поля версій, вікна застарівання, міграцію з подвійним записом, контрактні тести й канаркові метрики.