YETI³ STUDIO / Коллекция готовых сайтовЭто может быть ваш сайт ↗
JOURNALтехнологии · опыт · люди
← К публикациям
ННикита Орловдемо

Контракт API: договор между командами

Бэкенд

Короткая практика: ошибки, версии и совместимость без сюрпризов.

Ошибка — часть контракта

Опишите не только успешный ответ, но и неверные данные, отсутствие прав, конфликт версии и ограничение частоты. Клиент должен понимать, когда повторять запрос, а когда попросить человека исправить поле.

Обновления без одномоментного переключения

Сначала добавляйте новые поля, сохраняя старые. Дождитесь обновления клиентов и только потом удаляйте устаревшее. Записывайте изменение семантики даже тогда, когда JSON внешне не поменялся.

Проверяйте на реальном потребителе

Контрактный тест ценен, когда проверяет обещание API. Он должен обнаружить несовместимость клиента и сервера, а не повторять строки реализации.

↑ 3 · Оценить▢ В закладки
Н
Никита Орлов

Пишу о надёжности сервисов и спокойных релизах. Вымышленный автор демо.

Обсуждение 2

Обсуждаем идеи, делимся опытом и уважаем собеседника.

Полезный разговор начинается с вас.

Войти и обсудить ↗
ААлексей Морозовдемо

Можно ли считать добавление обязательного поля обратно совместимым изменением?

ННикита Орловдемо

Если старый клиент его не передаёт и запрос перестаёт работать — совместимость нарушена. Нужен переходный период или новая версия контракта.

YETI³ STUDIO / ГОТОВОЕ РЕШЕНИЕ

Ваш бизнес.
Ваш новый сайт.

Этот дизайн уже работает. Смените название, добавьте своё содержание и управляйте сайтом из одного кабинета.

Мобильная версияУправление контентомСвой домен
Решение JOURNALот 6900 ₽

Лицензия дизайна и функций решения. Размещение и ядро рассчитываются отдельно.

Настроить в конструкторе ↗

Окончательный расчёт и доступность установки — в конструкторе. Здесь демонстрационные данные.