meldestelle/docs/05_Backend/Services/ping-service.md
Stefan Mogeritsch a454e6c97a docs: restructure domain documentation and update references
Implemented a standardized folder structure for domain documentation to improve clarity and maintainability. Migrated existing files to the new structure, updated links in related documentation, and added README files for navigation and guidance.
2026-01-15 13:44:49 +01:00

2.1 KiB

Ping-Service

Diese Seite beschreibt den aktuellen technischen Stand des Ping-Service. Sie ist der stabile Einstiegspunkt ("technische Wahrheit") für diesen Service.

Der ping-service dient als Health-Check-Endpunkt und als technische Blaupause für die Implementierung von Services nach den Prinzipien der Clean Architecture im "Meldestelle"-Projekt.

Architektur & Implementierung

Der Service folgt einem Clean Architecture Ansatz:

  • Driving Adapter: Der PingController (infrastructure/web) nimmt HTTP-Anfragen entgegen.
  • Application Port: Das PingUseCase (application) definiert die Anwendungslogik.
  • Driven Adapters: Persistenz-Adapter (nicht im Detail gezeigt) interagieren mit der Datenbank.

Die Implementierung ist vollständig asynchron und nutzt Kotlin Coroutines und Spring WebFlux.

API-Definition

Die API-Datenstrukturen (DTOs) und das API-Interface (PingApi) sind im KMP-Modul :contracts:ping-api definiert, um sie mit dem Frontend zu teilen.

Wichtigste Endpunkte

Alle Endpunkte sind unter dem Basispfad / des Service-Ports (Standard: 8081) erreichbar.

  • GET /ping/simple:
    • Führt einen einfachen Ping aus, speichert das Ereignis in der Datenbank und gibt eine PingResponse zurück.
  • GET /ping/enhanced:
    • Ein erweiterter Ping, der mit einem Resilience4j Circuit Breaker abgesichert ist.
    • Kann einen Fehler simulieren (?simulate=true).
    • Gibt eine EnhancedPingResponse mit Latenz und Circuit-Breaker-Status zurück.
  • GET /ping/health:
    • Ein einfacher Health-Check, der den Status des Services zurückgibt (HealthResponse).
  • GET /ping/history:
    • Gibt eine Liste der letzten Ping-Ereignisse aus der Datenbank zurück.

Security

Die Endpunkte sind aktuell nicht durch Spring Security auf Service-Ebene geschützt. Die Absicherung erfolgt auf Ebene des API-Gateways.

Historie

Der ursprüngliche Arbeitsauftrag zur Implementierung dieses Services ist unter docs/90_Reports/Ping-Service_Impl_01-2026.md zu finden, ist aber veraltet und spiegelt nicht mehr den aktuellen Stand wider.