Files
specs/openspec/changes/archive/2026-08-12-baseline/specs/api-contract-generation/spec.md
T
2026-08-12 23:09:16 +03:00

2.3 KiB
Raw Blame History

Purpose

Определяет единый, проверяемый контракт HTTP API между backend и frontend, исключающий ручное расхождение типов и маршрутов.

ADDED 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