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

44 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Проверка runtime OpenAPI
## Назначение
`npm run test:openapi-contract` в `backend/` строит configured Nest application,
создаёт runtime OpenAPI document и сверяет его с committed snapshot
`frontend/src/shared/api/spec/openapi.json` после детерминированной canonicalization.
Это отдельный контрактный gate, а не общий verifier всех репозиториев. Он нужен
перед изменениями backend API или frontend transport contract и не заменяет
локальные lint/typecheck команды приложений.
## Запуск
Из корня workspace:
```bash
cd backend
npm run test:openapi-contract
```
Перед первым запуском в backend выполняют `npm ci` под Node 22.
## Границы и результат
Команда:
- использует configured Nest application на integration boundary;
- рекурсивно сортирует только ключи JSON objects и сохраняет порядок arrays;
- не записывает snapshot или generated frontend types.
Она не вызывает `npm run openapi:sync`, не записывает committed snapshot или
generated frontend types и не обращается к T-Bank либо другому внешнему
сервису. Если контракт действительно изменён, snapshot обновляют только
осознанной командой `npm run openapi:sync` в `frontend`, затем снова запускают
эту проверку.
## Ограничение e2e
Проверка Swagger не запускает backend e2e tests. WL-P2-05 (runnable e2e) и
WL-P2-13 (единый workspace verdict) отложены из-за нестабильного Prisma 7.9.1
migration gate; дата, rationale и trigger пересмотра находятся в
[audit remediation registry](audit-remediation.md).