2.3 KiB
2.3 KiB
api-contract-generation Specification
Purpose
Определяет единый, проверяемый контракт HTTP API между backend и frontend, исключающий ручное расхождение типов и маршрутов.
Requirements
Requirement: Backend публикует машиночитаемый API-контракт
Backend SHALL публиковать версионированный OpenAPI-документ, описывающий доступные HTTP-маршруты, параметры, тела запросов, ответы и ошибки API /api/v1.
Scenario: Разработчик получает контракт API
- WHEN backend запущен в локальной среде разработки
- THEN разработчик может получить OpenAPI-документ для генерации frontend-клиента
Requirement: Frontend использует сгенерированный API-клиент
Frontend SHALL генерировать типы и модуль HTTP-запросов из опубликованного OpenAPI-документа. Сгенерированный результат MUST храниться в frontend-репозитории и обновляться локальной воспроизводимой командой.
Scenario: API-контракт изменяется
- WHEN backend меняет опубликованный API-контракт
- THEN frontend может повторно сгенерировать типы и запросный модуль до интеграции изменения
Requirement: Frontend не зависит от OpenAPI во время работы
Работающий frontend MUST использовать ранее сгенерированный клиент и MUST NOT требовать доступность Swagger или OpenAPI endpoint во время запуска или выполнения пользовательского сценария.
Scenario: OpenAPI endpoint недоступен после сборки frontend
- WHEN frontend уже собран, а endpoint OpenAPI временно недоступен
- THEN frontend продолжает использовать сгенерированный код для запросов к API