Контракт API: договор между командами
Короткая практика: ошибки, версии и совместимость без сюрпризов.
Ошибка — часть контракта
Опишите не только успешный ответ, но и неверные данные, отсутствие прав, конфликт версии и ограничение частоты. Клиент должен понимать, когда повторять запрос, а когда попросить человека исправить поле.
Обновления без одномоментного переключения
Сначала добавляйте новые поля, сохраняя старые. Дождитесь обновления клиентов и только потом удаляйте устаревшее. Записывайте изменение семантики даже тогда, когда JSON внешне не поменялся.
Проверяйте на реальном потребителе
Контрактный тест ценен, когда проверяет обещание API. Он должен обнаружить несовместимость клиента и сервера, а не повторять строки реализации.
Обсуждение 2
Обсуждаем идеи, делимся опытом и уважаем собеседника.
Полезный разговор начинается с вас.
Войти и обсудить ↗Можно ли считать добавление обязательного поля обратно совместимым изменением?
Если старый клиент его не передаёт и запрос перестаёт работать — совместимость нарушена. Нужен переходный период или новая версия контракта.