Skip to content

QA-4: Версионирование API #104

Description

@ii-reviewer

Цель: ввести явное версионирование /api/v1, заложить стратегию для v2 и механизм объявления устаревания через HTTP-заголовки.
Зависимость: #1#9, REPORT-1, USR-1.

Что сделать

  • Перенеси эндпоинты под префикс /api/v1/.... Реши как: префикс в @RequestMapping каждого контроллера, общий server.servlet.context-path/spring.mvc.servlet.path, или PathPattern-конфиг. Не сломай Swagger и публичные пути в SecurityConfig.
  • Опиши стратегию для v2 в README: path versioning (/api/v2) vs header (Accept: application/vnd.warehouse.v2+json) — выбери одну, обоснуй где хранить версию.
  • Для устаревания добавь на старые эндпоинты заголовки Deprecation: true и Sunset: <date> (через интерсептор/фильтр).
  • Трудные места: миграция без слома существующих клиентов (можно ли временно отвечать и на старый путь, и на /v1); отражение версии в Swagger; чтобы один контроллер не дублировался ради двух версий.

Acceptance criteria

  • Все эндпоинты доступны под /api/v1/...
  • Swagger показывает версионированные пути
  • На эндпоинте, помеченном устаревшим, приходят заголовки Deprecation/Sunset
  • В README зафиксирована стратегия перехода на v2
  • Security-правила работают с новыми путями

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions