Enterprise Maven Master

Master 17 - API & Integration Gateway - Projektbeschreibungen

Projektbeschreibungen

ModulAufgabeAblaufPatternTests
event-contractsGemeinsame Ein-/Ausgabe-Contracts (GatewayRequest, GatewayResponse) für alle Gateway-Bausteine.Eingang validieren (businessKey/route) -> Contract bereitstellenValue ObjectGatewayRequestTest (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 generierenUtilityCorrelationIdGeneratorTest (3): behält vorhandene Id, generiert bei fehlendem/leerem Header eine neue.
idempotencyVerhindert doppelte Weiterleitung derselben Anfrage.businessKey prüfen -> einmalig zulassenGuardIdempotencyKeyGuardTest (2): lässt einen Key nur einmal zu, zählt gesehene Keys.
contract-catalogRegistry der freigegebenen Routen inkl. Zielsystem und Aktiv-Status; implementiert seit der Vertiefung den Port RouteRepository.Route registrieren -> Route nachschlagenRegistry, Port/AdapterContractCatalogTest (2): findet registrierte Route, liefert leeres Optional für unbekannte Route.
routing-policyRoute-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 liefernAggregate, Application Service, StrategyRouteTest (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 liefernTranslatorErrorTranslatorTest (2): übernimmt Statuscode einer GatewayException, mappt unbekannte Fehler auf 502.
gateway-coreApiGateway-Facade: verbindet Correlation, Idempotenz, Routing und Fehlerbehandlung zu einem Ablauf.Eingang prüfen -> Regel anwenden -> Ergebnis meldenFacade, Chain of ResponsibilityApiGatewayTest (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 delegierenAdapterGatewayRestAdapterTest (2): leitet POST an registrierte Route weiter, übernimmt mitgelieferte Correlation-Id.
integration-demoVerdrahtet Katalog und REST-Adapter zu einem End-to-End-Durchlauf über alle vier Ergebnispfade.Bekannte Route -> Duplikat -> deaktivierte Route -> unbekannte RouteComposition RootGatewayIntegrationDemoTest (1): prüft alle vier Statuscodes (200/409/503/404) in einem Lauf.
gateway-reference-applicationEigenständige Spring-Cloud-Gateway-Referenzanwendung mit Correlation-Filter, Fehler-Handler und Security-Konfiguration.Request -> Correlation-Filter -> Security -> Routing -> Fehler-HandlerComposition Root, Filter, Error TranslatorCorrelationIdFilterTest (bereits vorhanden).
enterprise-reference-sliceFramework-neutrale Referenz für den Gateway-Routing-Ablauf.Konfigurieren -> Routen -> Health-Check -> Sicher stoppenCommand, Result ObjectGatewayRoutingFlowTest (bereits vorhanden).
runnable-smokeVerdrahtet 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 meldenCommand, Pipeline, Result ObjectKein 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).

⌂ Cockpit