Контрактные тесты API: как заметить несовместимость до релиза

Как контрактные тесты проверяют запросы и ответы API, обязанности поставщика и потребителя, версии схемы и совместимость изменений.

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

Фиксируйте наблюдаемое

Проверяйте метод, путь, обязательные поля, типы, коды и значимую семантику, не привязываясь к внутренней реализации поставщика. Контракт узкий.

Подключите обе стороны

Потребитель публикует реальные ожидания, а поставщик проверяет их на каждой сборке до выпуска. Неиспользуемые требования удаляйте.

Не заменяйте интеграцию

Контракт не доказывает сетевые настройки, права, таймауты и полный бизнес-путь, поэтому оставьте несколько реальных интеграционных проверок. Баланс нужен.

При каждом версионировании обязательно храните проверяемую связь контрактного теста с конкретным активным потребителем и его владельцем, чтобы устаревшее ожидание не блокировало дальнейшее развитие API после документально завершенной миграции последнего клиента.

Правила изменения описаны в статье про версионирование API. Уровни тестов распределяйте по рискам.