Files
2026-08-14 09:49:55 +03:00

4.0 KiB
Raw Blame History

MODIFIED Requirements

Requirement: Frontend использует сгенерированный API-клиент

Frontend SHALL хранить в репозитории версионируемый snapshot опубликованного OpenAPI-документа и генерировать transport types из этого snapshot. Команда синхронизации MUST получать документ из backend, а затем обновлять snapshot и сгенерированный результат только при успешном завершении всего процесса. Сгенерированный результат MUST храниться в frontend-репозитории.

Scenario: API-контракт синхронизируется

  • WHEN разработчик запускает команду синхронизации при доступном backend с валидным OpenAPI-документом
  • THEN frontend обновляет versioned snapshot и сгенерированные transport types из опубликованного контракта

Scenario: API-контракт изменяется

  • WHEN backend меняет опубликованный API-контракт
  • THEN frontend может синхронизировать snapshot и повторно сгенерировать transport types до интеграции изменения

Scenario: Синхронизация контракта завершается ошибкой

  • WHEN backend недоступен или публикует невалидный OpenAPI-документ
  • THEN команда завершается с ошибкой и существующие snapshot и сгенерированные transport types не изменяются

Requirement: Frontend не зависит от OpenAPI во время работы

Работающий frontend MUST использовать ранее сгенерированные transport types и MUST NOT требовать доступность Swagger или OpenAPI endpoint во время запуска, выполнения пользовательского сценария или локальной проверки актуальности generated artifact. Доступ к backend OpenAPI endpoint разрешён только команде синхронизации snapshot.

Scenario: OpenAPI endpoint недоступен после сборки frontend

  • WHEN frontend уже собран, а endpoint OpenAPI временно недоступен
  • THEN frontend продолжает использовать сгенерированный код для запросов к API

Scenario: Локальная проверка выполняется без backend

  • WHEN разработчик запускает локальный quality gate без доступного backend
  • THEN проверка актуальности generated artifact использует сохранённый snapshot и не обращается к OpenAPI endpoint

ADDED Requirements

Requirement: Frontend обнаруживает дрейф сгенерированного контракта

Frontend SHALL проверять, что committed generated transport types соответствуют versioned OpenAPI snapshot, и MUST завершать quality gate с ошибкой при расхождении.

Scenario: Generated artifact устарел

  • WHEN OpenAPI snapshot изменён, а generated transport types не обновлены
  • THEN проверка контракта завершается с ошибкой

Scenario: Generated artifact изменён вручную

  • WHEN generated transport types отличаются от результата генерации из сохранённого snapshot
  • THEN проверка контракта завершается с ошибкой