Files
Mitgliederverwaltung/.plans/open/issue-209-api-versioning-strategy.md
T
shahondin1624 b29a268b1d Restructure .plans/ into done/ and open/ subdirectories
- Move completed plan files to .plans/done/
- Move 18 open plan files to .plans/open/
- Update .gitignore to exclude .verified_plans temp file
- Verified all 18 open plans still describe unimplemented issues
2026-04-28 20:30:55 +02:00

60 lines
1.5 KiB
Markdown

# Issue #209: No API Versioning Strategy
## Problem
All API endpoints use `/api/v1/` prefix but there's no formal versioning strategy. When breaking changes are needed (e.g., restructuring the member response), there's no clean migration path.
Current endpoints:
```
/apps/mitgliederverwaltung/api/v1/members
/apps/mitgliederverwaltung/api/v1/families
/apps/mitgliederverwaltung/api/v1/fees
...
```
## Impact
- Breaking frontend changes require immediate backend deployment
- No backward compatibility for mobile apps or third-party integrations
- Hard to deprecate old formats gracefully
## Solution
Implement a proper versioning strategy:
1. **URL Versioning** (current approach):
```
/api/v1/members → Current version
/api/v2/members → New version with breaking changes
```
2. **Header Versioning** (alternative):
```
GET /api/members
Accept: application/vnd.mitgliederverwaltung.v1+json
GET /api/members
Accept: application/vnd.mitgliederverwaltung.v2+json
```
3. **Deprecation Path**:
- v1 marked as deprecated in response headers
- v2 available in parallel
- v1 removed after 6 months
## Tasks
- [ ] Document API versioning strategy in docs/
- [ ] Implement v2 endpoints for critical entities (Member first)
- [ ] Add deprecation headers to v1 responses
- [ ] Update frontend to use v2 endpoints
- [ ] Create migration guide for v1 → v2
- [ ] Set deprecation timeline (e.g., remove v1 in next major release)
## Labels
- enhancement
- backend
- api
- priority:low
- architecture