- Add database schema documentation: `Database_Schema_V1-V009.md` for tenant-isolated entities (`veranstaltungen`, `turniere`, `bewerbe`, etc.). - Draft initial Kassa API reference: `Kassa_API.md` (status: DRAFT). - Finalize Stammdaten API reference: `API_Uebersicht_Stammdaten.md` (status: ACTIVE). - Summarize tenant isolation and multi-tenant strategy in `Multi_Tenant_Kurz.md`. - Update `README.md` with links to new references. Mark B-2 roadmap tasks as partially complete.
64 lines
2.4 KiB
Markdown
64 lines
2.4 KiB
Markdown
---
|
||
type: Reference
|
||
status: ACTIVE
|
||
owner: Backend Developer
|
||
last_update: 2026-04-03
|
||
---
|
||
|
||
# API-Übersicht Stammdaten
|
||
|
||
Abdeckung: Backend Sprint B‑1 (abgeschlossen). Konsolidierte Endpunkte für Reiter, Pferde, Vereine und Funktionäre. Implementiert mit Ktor; DTOs und Validierung in den jeweiligen Services.
|
||
|
||
Hinweis Tenant/Headers: Stammdaten sind global bzw. nicht tenant‑spezifisch. Für domain‑spezifische Vorgänge (Entries, Kassa) gilt ADR‑0021/`X-Event-Id`.
|
||
|
||
## Reiter (`/reiter`)
|
||
|
||
- GET `/reiter` — Liste (optional Filter: `lizenzKlasse`, `vereinId`; Pagination: `limit`, `offset`)
|
||
- GET `/reiter/search?q=...` — Suche nach Name oder Satznummer
|
||
- GET `/reiter/{id}` — Einzelabruf
|
||
- GET `/reiter/satznummer/{nr}` — Lookup per Satznummer
|
||
- POST `/reiter` — Anlegen
|
||
- PUT `/reiter/{id}` — Aktualisieren (partiell)
|
||
- DELETE `/reiter/{id}` — Löschen
|
||
|
||
Quelle: `backend/services/masterdata/masterdata-api/.../ReiterController.kt`
|
||
|
||
## Pferde (`/horse`)
|
||
|
||
- GET `/horse` — Liste (optional Filter: `jahrgang`, `besitzerId`; Pagination: `limit`, `offset`)
|
||
- GET `/horse/search?q=...` — Suche nach Name/Nummern
|
||
- GET `/horse/{id}` — Einzelabruf
|
||
- POST `/horse` — Anlegen
|
||
- PUT `/horse/{id}` — Aktualisieren (partiell)
|
||
- DELETE `/horse/{id}` — Löschen
|
||
|
||
Quelle: `backend/services/masterdata/masterdata-api/.../HorseController.kt`
|
||
|
||
## Vereine (`/verein`)
|
||
|
||
- GET `/verein` — Liste (optional Filter: `verband`/Bundesland; Pagination: `limit`, `offset`)
|
||
- GET `/verein/search?q=...` — Suche nach Name/Kurzname
|
||
- GET `/verein/{id}` — Einzelabruf
|
||
- POST `/verein` — Anlegen
|
||
- PUT `/verein/{id}` — Aktualisieren (partiell)
|
||
- DELETE `/verein/{id}` — Löschen
|
||
|
||
Quelle: `backend/services/masterdata/masterdata-api/.../VereinController.kt`
|
||
|
||
## Funktionäre (`/funktionaer`)
|
||
|
||
- GET `/funktionaer` — Liste (optional Filter: `rolle`; Pagination: `limit`, `offset`)
|
||
- GET `/funktionaer/search?q=...` — Suche nach Name
|
||
- GET `/funktionaer/{id}` — Einzelabruf
|
||
- POST `/funktionaer` — Anlegen
|
||
- PUT `/funktionaer/{id}` — Aktualisieren (partiell)
|
||
- DELETE `/funktionaer/{id}` — Löschen
|
||
|
||
Quelle: `backend/services/masterdata/masterdata-api/.../FunktionaerController.kt`
|
||
|
||
## Standards
|
||
|
||
- Auth: Standard-Bearer optional je nach Deploymentprofil (siehe Service-Konfig)
|
||
- Content-Type: `application/json; charset=utf-8`
|
||
- Fehlerfälle: 400 (Validierung), 404 (nicht gefunden)
|