Jackson am Telefon
Immer wieder kommt es vor, dass man im eigenen Spring Boot REST-Controller Klassen verwenden möchte, die nicht dafür konstruiert wurden. In der Regel trifft dies auf Klassen zu, die aus Dritt-Bibliotheken stammen.
Gedanken zur agilen Softwareentwicklung
Immer wieder kommt es vor, dass man im eigenen Spring Boot REST-Controller Klassen verwenden möchte, die nicht dafür konstruiert wurden. In der Regel trifft dies auf Klassen zu, die aus Dritt-Bibliotheken stammen.
JUnit 5 bietet mit seiner Extension Model einen leichtgewichtigen Ansatz um Testdaten direkt in die jeweilige Testmethode zu injizieren. Im Beitrag Personas für Unit Tests wurde gezeigt, wie mit dem ParameterResolver und dem InvocationInterceptor Testdaten vor der Testausführung generiert und manipuliert werden können. Ausgeblendet wurde dabei die Zuweisung der Persona Eigenschaften auf die Testobjekte im FakePersonaBuilder.
Wird eine neue Software Technologie eingesetzt, dann taumeln die beteiligten Entwickler von anfänglicher Euphorie schnell in tiefste Depression. Die Entwickler sind keinem Borderline Syndrom erlegen, aber häufig lässt man sich, in der Hoffnung auf Neues, von einigen Buzz-Words täuschen. Vor einigen Jahren bekam unser Team eine REST API vorgelegt, die unser Kunde gerne angeschlossen haben … Weiterlesen
Die Dokumentation einer REST API sieht immer sehr schick aus. Ob es sich um eine interaktive Swagger Seite handelt oder um eine statische Darstellung eines anderen Tools, alle Endpoints, Parameter und Datentypen sind akkurat aufgelistet.
Eine REST API mit Spring Boot ist schnell einsatzbereit, aber im Einsatz produziert die Schnittstelle häufig eine Menge unnötiger Daten, die vom Server zurückgeliefert werden.
Immer seltener passiert es, dass ein Entwickler sich mit der Bibliothek Jackson beschäftigen muss. Viele Frameworks, wie etwa Jersey und Spring Boot verwenden die Bibliothek intern zum Mappen zwischen JSON und ihren POJOs. Dabei greifen sie auf die Möglichkeiten des Jackson ObjektMappers zu, unter Angabe einer Klasse und einer JSON Quelle, fertig gefüllte Instanzen dieser Klasse zu erzeugen.
Die Stammbäume entstanden auf meinem Notebook bislang recht primitiv als Produkt eines JUnit Test. Es wäre aber doch viel schöner, wenn es eine Service geben würde, der über eine REST Schnittstelle, Ahnendaten und Stammbaumgrafiken liefern könnte. Solch einen Service kann man schnell und einfach mit Spring Boot 2 erstellen. Es funktioniert sogar so einfach, dass ich die Beispielapplikation in einem Bruchteil der Zeit zum Laufen gebracht habe, die ich zum Schreiben dieses Beitrages benötigte.