42 lines
3.2 KiB
Markdown
42 lines
3.2 KiB
Markdown
# Проверка runtime OpenAPI
|
|
|
|
## Назначение
|
|
|
|
Проверка сравнивает OpenAPI, сформированный настроенным backend-приложением,
|
|
с описанием API, на котором основан frontend. Backend остаётся единственным
|
|
источником исполняемого HTTP-контракта; frontend-клиент является производным.
|
|
Причины выбора описаны в [ADR 002](../adr/002-nest-generated-openapi-contract.md).
|
|
|
|
Эта проверка подтверждает согласованность публичного контракта, но не заменяет
|
|
проверки каждого приложения и наблюдаемого HTTP-поведения.
|
|
|
|
## Выбор и направление изменения
|
|
|
|
Изменением контракта считается изменение маршрута, входного или выходного поля,
|
|
статуса либо формы ошибки. Внутреннее изменение представления без изменения
|
|
API не требует нового описания контракта.
|
|
|
|
Направление согласования: публичный API backend → OpenAPI → производное
|
|
описание и типизированный клиент frontend. Две независимо редактируемые версии
|
|
контракта создавали бы риск расхождения. Перед изменением, влияющим на
|
|
совместимость, учитываются существующие потребители и сохранность данных.
|
|
Семантика запросов и ошибок описана в [HTTP API](../architecture/http-api.md).
|
|
|
|
## Границы и результат
|
|
|
|
Сравнение выполняется на границе настроенного приложения, нормализует порядок
|
|
ключей JSON-объектов и сохраняет порядок массивов. Оно не обновляет сравниваемые
|
|
описания и клиент автоматически и не обращается к T-Bank или другим внешним
|
|
источникам. Несовпадение указывает на рассогласование контракта.
|
|
|
|
Равенство схем не доказывает фактическую работу валидации, авторизации,
|
|
статусов, cookie и обработки ошибок: для этого нужны наблюдения полного
|
|
HTTP-потока. Согласованность описаний и функциональная корректность —
|
|
разные доказательства.
|
|
|
|
## Ограничение e2e
|
|
|
|
Сравнение OpenAPI не запускает сквозные проверки с миграциями базы.
|
|
Известная ошибка движка миграций и условие пересмотра описаны в
|
|
[сквозной проверке](verification.md#известное-ограничение-сквозной-проверки).
|