Enterprise Maven Master
Master 17 - API & Integration Gateway - Projektbeschreibungen
Projektbeschreibungen
| Modul | Aufgabe | Ablauf | Pattern | Tests |
|---|---|---|---|---|
event-contracts | Gemeinsame Ein-/Ausgabe-Contracts (GatewayRequest, GatewayResponse) für alle Gateway-Bausteine. | Eingang validieren (businessKey/route) -> Contract bereitstellen | Value Object | GatewayRequestTest (3): lehnt leeren businessKey/route ab, defaultet fehlende Header. |
correlation | Übernimmt eine eingehende Correlation-Id oder erzeugt eine neue. | Header prüfen -> Id übernehmen oder generieren | Utility | CorrelationIdGeneratorTest (3): behält vorhandene Id, generiert bei fehlendem/leerem Header eine neue. |
idempotency | Verhindert doppelte Weiterleitung derselben Anfrage. | businessKey prüfen -> einmalig zulassen | Guard | IdempotencyKeyGuardTest (2): lässt einen Key nur einmal zu, zählt gesehene Keys. |
contract-catalog | Registry der freigegebenen Routen inkl. Zielsystem und Aktiv-Status; implementiert seit der Vertiefung den Port RouteRepository. | Route registrieren -> Route nachschlagen | Registry, Port/Adapter | ContractCatalogTest (2): findet registrierte Route, liefert leeres Optional für unbekannte Route. |
routing-policy | Route-Aggregat (Domain) kapselt die Invarianten "veröffentlicht" und "aktiv"; CatalogBackedRoutingPolicy (Application) orchestriert den RouteRepository-Port und den Domain-Aufruf. | Port abfragen -> Domain-Invarianten prüfen -> Zielsystem liefern | Aggregate, Application Service, Strategy | RouteTest (3): löst aktive Route auf, lehnt unveröffentlichte und deaktivierte Route ab. CatalogBackedRoutingPolicyTest (3). |
error-handling | Übersetzt jeden Fehler in eine einheitliche GatewayResponse, nie eine rohe Exception. | Fehler abfangen -> Statuscode zuordnen -> Contract liefern | Translator | ErrorTranslatorTest (2): übernimmt Statuscode einer GatewayException, mappt unbekannte Fehler auf 502. |
gateway-core | ApiGateway-Facade: verbindet Correlation, Idempotenz, Routing und Fehlerbehandlung zu einem Ablauf. | Eingang prüfen -> Regel anwenden -> Ergebnis melden | Facade, Chain of Responsibility | ApiGatewayTest (3): leitet bekannte Route weiter (200), lehnt unbekannte Route ab (404), erkennt Duplikat (409). |
gateway-rest-api | Übersetzt einen einfachen REST-Aufruf (Pfad, businessKey, Correlation-Id) in den GatewayRequest-Contract. | REST-Aufruf entgegennehmen -> Contract bauen -> an gateway-core delegieren | Adapter | GatewayRestAdapterTest (2): leitet POST an registrierte Route weiter, übernimmt mitgelieferte Correlation-Id. |
integration-demo | Verdrahtet Katalog und REST-Adapter zu einem End-to-End-Durchlauf über alle vier Ergebnispfade. | Bekannte Route -> Duplikat -> deaktivierte Route -> unbekannte Route | Composition Root | GatewayIntegrationDemoTest (1): prüft alle vier Statuscodes (200/409/503/404) in einem Lauf. |
gateway-reference-application | Eigenständige Spring-Cloud-Gateway-Referenzanwendung mit Correlation-Filter, Fehler-Handler und Security-Konfiguration. | Request -> Correlation-Filter -> Security -> Routing -> Fehler-Handler | Composition Root, Filter, Error Translator | CorrelationIdFilterTest (bereits vorhanden). |
enterprise-reference-slice | Framework-neutrale Referenz für den Gateway-Routing-Ablauf. | Konfigurieren -> Routen -> Health-Check -> Sicher stoppen | Command, Result Object | GatewayRoutingFlowTest (bereits vorhanden). |
runnable-smoke | Verdrahtet integration-demo zu einem End-to-End-Smoke-Test (mvn -pl runnable-smoke -am package). | Alle vier Gateway-Pfade ausführen -> Statuscodes prüfen -> Gesamtstatus melden | Command, Pipeline, Result Object | Kein eigener JUnit-Test; verifiziert alle vier erwarteten Statuscodes zur Laufzeit und bricht mit Fehler ab, falls einer abweicht. |
Ausbaustufe 1 (minimal lauffähig): 21 JUnit-Tests über 9 vormals leere Submodule. Ausbaustufe 2 (fachlich ausgearbeitet): routing-policy bekam ein Route-Aggregat (Domain) und contract-catalog einen formalen RouteRepository-Port, den gateway-core und gateway-rest-api jetzt statt der konkreten ContractCatalog-Klasse verwenden (Dependency Inversion) — 3 weitere Tests, macht 29 Tests insgesamt für dieses Modul. Verifiziert mit mvn test (alle grün) und dem End-to-End-Smoke-Lauf mvn -pl runnable-smoke -am package (weiterhin STATUS=OK für alle vier Pfade: bekannte Route, Duplikat, deaktivierte Route, unbekannte Route).