docs: archive baseline change
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user