Ktor Server: REST-API Endpoints (Sync & CRUD) #42

Closed
opened 2026-05-14 17:28:08 +00:00 by jreinemann-euris · 1 comment
jreinemann-euris commented 2026-05-14 17:28:08 +00:00 (Migrated from github.com)

Feature: REST-API Endpoints fuer Inventar-Synchronisierung

Part of: #11
Depends on: #41

Ziel

Der Ktor-Server bietet REST-Endpoints, ueber die ein Client das komplette Inventar abrufen und synchronisieren kann.

Scope

  • Route-Konfiguration in Ktor (routing {})
  • GET /api/inventory - Vollstaendiges Inventar als JSON abrufen
  • PUT /api/inventory - Inventar vollstaendig ersetzen (Full-Sync)
  • GET /api/health - Health-Check (bereits aus #40, ggf. erweitern)
  • Content-Negotiation: JSON via kotlinx.serialization
  • HTTP-Statuscodes: 200, 400, 401, 500
  • Error-Handling mit strukturierten Fehlerantworten
  • Request-Logging

Technische Hinweise

  • Full-Sync-Strategie: Client sendet komplettes Inventar, Server ersetzt alles
  • Das Shared-Modul InventoryDto wird als Request/Response-Body verwendet
  • Ktor Content Negotiation Plugin fuer automatische Serialisierung
  • StatusPages-Plugin fuer einheitliches Error-Handling

Akzeptanzkriterien

  • GET /api/inventory liefert komplettes Inventar als JSON
  • PUT /api/inventory akzeptiert JSON und ersetzt Server-Inventar
  • Fehlerhafte Requests liefern strukturierte Fehlermeldungen (400)
  • Tests: Endpoint-Tests mit Ktor TestApplication
## Feature: REST-API Endpoints fuer Inventar-Synchronisierung Part of: #11 Depends on: #41 ### Ziel Der Ktor-Server bietet REST-Endpoints, ueber die ein Client das komplette Inventar abrufen und synchronisieren kann. ### Scope - Route-Konfiguration in Ktor (`routing {}`) - `GET /api/inventory` - Vollstaendiges Inventar als JSON abrufen - `PUT /api/inventory` - Inventar vollstaendig ersetzen (Full-Sync) - `GET /api/health` - Health-Check (bereits aus #40, ggf. erweitern) - Content-Negotiation: JSON via kotlinx.serialization - HTTP-Statuscodes: 200, 400, 401, 500 - Error-Handling mit strukturierten Fehlerantworten - Request-Logging ### Technische Hinweise - Full-Sync-Strategie: Client sendet komplettes Inventar, Server ersetzt alles - Das Shared-Modul `InventoryDto` wird als Request/Response-Body verwendet - Ktor Content Negotiation Plugin fuer automatische Serialisierung - StatusPages-Plugin fuer einheitliches Error-Handling ### Akzeptanzkriterien - [ ] GET /api/inventory liefert komplettes Inventar als JSON - [ ] PUT /api/inventory akzeptiert JSON und ersetzt Server-Inventar - [ ] Fehlerhafte Requests liefern strukturierte Fehlermeldungen (400) - [ ] Tests: Endpoint-Tests mit Ktor TestApplication
jreinemann-euris commented 2026-05-14 18:30:57 +00:00 (Migrated from github.com)

Abgeschlossen (2025-05-14)

Zyklen: 2 (1 Fix-Zyklus für Kompilierungsfehler + Test-Fixes)
Tests: 12 Tests, 0 Fehler (8 Endpoint-Tests + 4 Repository-Tests)

Implementierte Artefakte

  • GET /api/inventory: Vollständiges Inventar als JSON abrufen
  • PUT /api/inventory: Inventar vollständig ersetzen (Full-Sync)
  • GET /api/health: Health-Check (von /health nach /api/health verschoben)
  • StatusPages: Strukturierte Fehlerantworten (400, 500)
  • CallLogging: Request-Logging (INFO-Level)
  • ErrorResponse: Serializable Error-DTO
  • 8 Endpoint-Tests mit Ktor TestApplication + In-Memory H2
## Abgeschlossen (2025-05-14) **Zyklen:** 2 (1 Fix-Zyklus für Kompilierungsfehler + Test-Fixes) **Tests:** ✅ 12 Tests, 0 Fehler (8 Endpoint-Tests + 4 Repository-Tests) ### Implementierte Artefakte - ✅ GET /api/inventory: Vollständiges Inventar als JSON abrufen - ✅ PUT /api/inventory: Inventar vollständig ersetzen (Full-Sync) - ✅ GET /api/health: Health-Check (von /health nach /api/health verschoben) - ✅ StatusPages: Strukturierte Fehlerantworten (400, 500) - ✅ CallLogging: Request-Logging (INFO-Level) - ✅ ErrorResponse: Serializable Error-DTO - ✅ 8 Endpoint-Tests mit Ktor TestApplication + In-Memory H2
Sign in to join this conversation.
No description provided.