What
Routes exist at both /api/ and /api/v1/. The apiVersionMiddleware exists but versioning is not consistently applied. Some routes are duplicated.
Why
Breaking changes will affect existing integrations. Inconsistent versioning makes API evolution impossible.
Scope
In scope: All routes under /api/v1/, /api/ as alias with deprecation header
Out of scope: v2 routes
Acceptance Criteria
Technical Context
backend/src/middlewares/apiVersionMiddleware.ts — versioning middleware
backend/src/routes/v1/ — v1 routes
backend/src/app.ts — route mounting (both /api/ and /api/v1/)
What
Routes exist at both
/api/and/api/v1/. The apiVersionMiddleware exists but versioning is not consistently applied. Some routes are duplicated.Why
Breaking changes will affect existing integrations. Inconsistent versioning makes API evolution impossible.
Scope
In scope: All routes under /api/v1/, /api/ as alias with deprecation header
Out of scope: v2 routes
Acceptance Criteria
Technical Context
backend/src/middlewares/apiVersionMiddleware.ts— versioning middlewarebackend/src/routes/v1/— v1 routesbackend/src/app.ts— route mounting (both /api/ and /api/v1/)