Aus dem Kurs: Microservices mit Spring Boot

REST-Aufrufe als Client mit Spring durchführen

Aus dem Kurs: Microservices mit Spring Boot

REST-Aufrufe als Client mit Spring durchführen

Wie kommt die Bestellung vom Order Service zum Delivery Service? Richtig! Per REST-Aufruf. Dazu ruft der Order Service als REST Client per Post den Delivery Service auf. Dies implementieren wir nun mit dem neuen Spring REST Client. Ich habe die Stelle, wo der eingebunden wird, bereits für Sie vorbereitet. Der Order REST Controller publiziert die neue Order über eine Klasse Order Rest Client Publisher, der hier auch schon die Publish-Methode aufruft. Die Implementierung müssen wir nun ergänzen. Der Order Rest Client Publisher wird jedoch bereits mit der URL des Delivery Services versorgt. Jetzt brauchen wir aber noch den Rest Client, den können wir uns zum Glück per Dependency Injection holen. Wir schreiben hin Private Final Rest Client speichern ihn in der Instanz Variable. Jetzt können wir ihn hier nutzen. Wir machen Rest Client, möchten gerne einen Post ausführen und zwar auf folgende URI. Wir nennen hier den Delivery Service URL nehmen wir für die Adresse des Delivery Services und ergänzen dann hier noch den Pfad api/delivery. Dann möchten wir einen Body mitgeben, und zwar die Order und möchten dann ein Retrieve machen. Nun könnten wir es damit belassen, aber wir möchten noch gerne das Ergebnis uns merken. Und zwar merken wir es uns in einem generischen JSON Node dieser Klasse JSON Node von Jackson. Jetzt haben wir das Result noch hier in dieser Variablen gespeichert. Die Variable möchten wir hier auch noch ausgeben. Dazu habe ich schon eine Log-Ausgabe vorbereitet. Jetzt ist dieser Restclient allerdings noch rot hinterlegt Could not autowire. Warum? Wir haben schließlich noch keine Bean mit dieser ID definiert. Dazu habe ich bereits eine Konfigurationsklasse für Sie vorbereitet mit der Spring Annotation @Configuration. Hier möchten wir nun unsere Bean zur Verfügung stellen mit der Annotation @Bean. Der Typ ist Rest Client. Wir nennen sie Rest Client und geben einen Rest Client zurück. Return Rest Client builder .build. Nun sind die roten Kringel weg und wir können die Orderanwendung starten. Die Delivery Anwendung habe ich bereits im Hintergrund für Sie gestartet. Die läuft also fleißig. Kommt eine Order an, so gibt sie auch etwas aus im Log. Jetzt rufen wir einmal das Post auf der Order auf. Kriegen ein Ergebnis zurück und können einmal schauen, ob hier auch etwas angekommen ist. Und tatsächlich Received Order ist hier angekomme beim Delivery Service und der Delivery Service hat unsere neue Bestellung bekommen und kann sie nun abarbeiten. Hurra!

Inhalt