Files
docs/development/runtime-openapi-verification.md
T

3.2 KiB

Проверка runtime OpenAPI

Назначение

Проверка сравнивает OpenAPI, сформированный настроенным backend-приложением, с описанием API, на котором основан frontend. Backend остаётся единственным источником исполняемого HTTP-контракта; frontend-клиент является производным. Причины выбора описаны в ADR 002.

Эта проверка подтверждает согласованность публичного контракта, но не заменяет проверки каждого приложения и наблюдаемого HTTP-поведения.

Выбор и направление изменения

Изменением контракта считается изменение маршрута, входного или выходного поля, статуса либо формы ошибки. Внутреннее изменение представления без изменения API не требует нового описания контракта.

Направление согласования: публичный API backend → OpenAPI → производное описание и типизированный клиент frontend. Две независимо редактируемые версии контракта создавали бы риск расхождения. Перед изменением, влияющим на совместимость, учитываются существующие потребители и сохранность данных. Семантика запросов и ошибок описана в HTTP API.

Границы и результат

Сравнение выполняется на границе настроенного приложения, нормализует порядок ключей JSON-объектов и сохраняет порядок массивов. Оно не обновляет сравниваемые описания и клиент автоматически и не обращается к T-Bank или другим внешним источникам. Несовпадение указывает на рассогласование контракта.

Равенство схем не доказывает фактическую работу валидации, авторизации, статусов, cookie и обработки ошибок: для этого нужны наблюдения полного HTTP-потока. Согласованность описаний и функциональная корректность — разные доказательства.

Ограничение e2e

Сравнение OpenAPI не запускает сквозные проверки с миграциями базы. Известная ошибка движка миграций и условие пересмотра описаны в сквозной проверке.