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.
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
PingResponsezurück.
- Führt einen einfachen Ping aus, speichert das Ereignis in der Datenbank und gibt eine
GET /ping/enhanced:- Ein erweiterter Ping, der mit einem Resilience4j Circuit Breaker abgesichert ist.
- Kann einen Fehler simulieren (
?simulate=true). - Gibt eine
EnhancedPingResponsemit Latenz und Circuit-Breaker-Status zurück.
GET /ping/health:- Ein einfacher Health-Check, der den Status des Services zurückgibt (
HealthResponse).
- Ein einfacher Health-Check, der den Status des Services zurückgibt (
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.