
Wer Microservices entwickelt, ist sicherlich schon einmal in Verzweiflung geraten, als er sein API verändern wollte, aber nicht mehr wusste, welche Teams seine Services benutzen. Einfach Brute Force ändern und auf die Schläge warten, ist nicht zeitgemäß. Consumer-driven Contracts ist ein Verfahren, bei dem die Consumer eines API dem Producer dieses API in Form von Kontrakten ihre Wünsche an das API mitteilen. Dieser muss dann dafür sorgen, dass diese Verträge eingehalten werden. Spring Contract stellt im Rahmen von Spring Boot und Cloud ein Framework zur Verfügung, das dieses Vorgehen für REST und Messaging genial umsetzt. Es versorgt den Producer mit Unit-Tests, die er gegen sein API laufen lassen muss. Außerdem werden aus diesen Tests ein Mock-Server in Form einer JAR-Datei erzeugt, die der Consumer wiederum nutzen kann. Spring Contract sorgt für die Konsistenz der einzelnen Artefakte und setzt zur Definition der Kontrakte Groovy DSL ein. Der Vortrag demonstriert und erklärt die Verwendung dieses Ansatzes mit Spring Cloud.
Fachvortrag auf der JAX-Konferenz, 24. April 2018, Mainz