GraphQL startet nun auch im Java-Ökosystem durch

Seite 4: Zusammenfassung und Ausblick

Inhaltsverzeichnis

In der Java-Welt konnte sich GraphQL noch nicht entscheidend durchsetzen, da den großen Java-Ökosystemen lange Zeit GraphQL-Frameworks fehlten, die wichtige Enterprise-Features wie Security, Exception Handling oder das Testen unterstützen. Das hat sich geändert: Fast alle bekannten Java-Ökosysteme bieten nun GraphQL-Frameworks in mehr oder weniger guter Qualität an.

Bei der Evaluierung dieser Frameworks hat sich gezeigt, dass alle die Enterprise-Features in ausreichender Qualität anbieten, sodass einem Einsatz in produktiven Anwendungen nichts mehr im Weg steht, wenngleich sich die Qualität und der Umfang der bereitgestellten Enterprise-Features im Detail unterscheiden.

Bis auf Jakarta EE haben alle großen Java-Ökosysteme GraphQL auch auf der Roadmap für 2022 und der Reifegrad für den produktiven Einsatz sollte sich weiter verbessern. Es besteht daher die Hoffnung, dass GraphQL in zukünftigen Java-Projekten häufiger als Alternative zu REST mit JSON zum Einsatz kommt, weil es passgenaue, individuelle Datenabfragen ohne Änderungen des Schnittstellenkontrakts erlaubt.

Wer GraphQL im Spring-Ökosystem nutzen möchte, sollte auf die Hausmarke Spring GraphQL setzen, zumal laut VMware künftig auch noch das DGS-Framework von Netflix in Spring GraphQL integriert werden soll. Allein auf Netflix zu vertrauen, könnte sich hingegen als riskant erweisen, falls Netflix wie schon bei anderen Open-Source-Aktivitäten auch das DGS-Framework einstellen oder zumindest nicht mehr quellfrei zur Verfügung stellen sollte. Michiel Oliemans' GraphQL Java Kickstart ist zweifellos das älteste und bekannteste GraphQL-Framework im Spring-Ökosystem. Als Ein-Entwickler-Projekt dürfte es sich angesichts der Konkurrenz aber schwertun, langfristig zu überleben.

Im Java-EE-Ökosystem haben Entwicklerinnen und Entwickler nur wenig Auswahl. Das große Jakarta-EE-Ökosystem bietet leider keine GraphQL-Spezifikation an. Als Alternative lässt sich MicroProfile nutzen, das mit einer eigenständigen GraphQL-Spezifikation einen soliden Grundstein gelegt hat. Wer herstellerunabhängig bleiben möchte, dem ist für die GraphQL-Spezifikation aus MicroProfile die Implementierung von SmallRye GraphQL zu empfehlen.

Wer im Microframework-Ökosystem unterwegs ist, sollte dem Weg von Quarkus folgen und auf eine bestehende, herstellerunabhängige Implementierung wie SmallRye GraphQL setzen.

Michael Schäfer
ist Principal IT Consultant bei msg. Als Architekt fokussiert er sich auf Enterprise-Applikationen im Java-Umfeld.

Michael Kagel
ist IT Consultant bei msg. Er entwickelt sowohl Frontend- als auch Backend-Systeme auf Basis von Java.

Stefan Brütsch
ist Associate IT Consultant bei msg. Er ist als Software Engineer im Frontend-Bereich tätig.

(map)