© bygermina/Shutterstock.com
Entwickler Magazin
Schneller Start dank durchdachter Frameworks

Full Stack GraphQL

Viele reden im Zusammenhang mit GraphQL über Stärken und Schwächen im Vergleich zu REST und dessen API-Design. Richtig interessant wird es aber erst, wenn man sich einmal für GraphQL entschieden hat. Anschließend geht es darum, konkrete Frameworks zu evaluieren und festzustellen, ob sich diese bei einem neuen Projekt sinnvoll einsetzen oder nahtlos in die vorhandene Anwendung integrieren lassen.

Michael Dähnert


Dieser Artikel legt seinen Schwerpunkt auf die exemplarische Integration einer Spring-Boot-Applikation (Java) mit einer Ionic-Mobilanwendung (Angular/TypeScript). Anhand von Beispielen wird die einfache und schnelle Verwendung von GraphQL-Frameworks aufgezeigt. Der folgende Artikel geht davon aus, dass dem Leser Grundbegriffe aus dem Umfeld von GraphQL, Spring Boot sowie Ionic/Angular bekannt sind. Für diejenigen, die mit GraphQL und dessen Schlüsselworten noch nicht vertraut sind, sei hier die Homepage mit vielen guten Erklärungen und Beispielen empfohlen [1].

GraphQL-Server – einfache Integration dank Spring Boot und „graphql-java“

Eine Spring-Boot-Applikation ist schnell erstellt. Im Internet gibt es hierfür eine große Anzahl an Tutorials sowie Erklärungen zum Schnellstart. Als erstklassiger Startpunkt sei hier auf den Spring Initializr [2] verwiesen. Dieser erzeugt nach Auswahl weniger Parameter – wie der Spring-Boot-Version sowie weiterer Spring-Module – den Quelltext einer direkt ausführbaren Applikation.

Nach erfolgtem Download des funktionsfähigen Spring-Boot-Grundgerüsts müssen für die Verwendung von GraphQL zwei weitere Dependencies in der pom.xml hinzugefügt werden (Listing 1).

Listing 1: Spring Boot GraphQL – Dependencys com.graphql-java graphql-spring-boot-starter 5.0.2 com.graphql-java graphql-java-tools 5.2.3

Durch die zusätzlichen Pakete stehen folgende Funktionalitäten zur Verfügung:

Parsing des GraphQL-SchemasTransformieren eines GraphQL Requests zur Weiterverarbeitung in der ApplikationslogikNahtlose Einbettung des GraphQL-Servers in Spring Boot

Die Integration in die Spring-Boot-Applikation führt zu:

automatischem Suchen und Parsen der Schemadateien (*.graphqls unterhalb des resource-Ordners),der Einrichtung eines sofort nutzbaren API-Endpunkts /graphql undder Verarbeitung der Beans mit Spring IoC.

Weitere Informationen zur Einrichtung können der ausgezeichneten Dokumentation von www.baeldung.com entnommen werden [3]. Als Nächstes widmen wir uns der Erstellung des GraphQL-Schemas. Listing 2 zeigt ein Beispiel zum Auslesen und Schreiben von Nutzerdaten eines Blogs.

Listing 2: GraphQL-Serverschematype Query { getUser(id: Int!) : User} type Mutation { addBlogPost(newPost: BlogPostInput!) : BlogPost} input BlogPostInput { subject: String! content : String! userId:...

Entwickler Magazin
Schneller Start dank durchdachter Frameworks

Full Stack GraphQL

Viele reden im Zusammenhang mit GraphQL über Stärken und Schwächen im Vergleich zu REST und dessen API-Design. Richtig interessant wird es aber erst, wenn man sich einmal für GraphQL entschieden hat. Anschließend geht es darum, konkrete Frameworks zu evaluieren und festzustellen, ob sich diese bei einem neuen Projekt sinnvoll einsetzen oder nahtlos in die vorhandene Anwendung integrieren lassen.

Michael Dähnert


Dieser Artikel legt seinen Schwerpunkt auf die exemplarische Integration einer Spring-Boot-Applikation (Java) mit einer Ionic-Mobilanwendung (Angular/TypeScript). Anhand von Beispielen wird die einfache und schnelle Verwendung von GraphQL-Frameworks aufgezeigt. Der folgende Artikel geht davon aus, dass dem Leser Grundbegriffe aus dem Umfeld von GraphQL, Spring Boot sowie Ionic/Angular bekannt sind. Für diejenigen, die mit GraphQL und dessen Schlüsselworten noch nicht vertraut sind, sei hier die Homepage mit vielen guten Erklärungen und Beispielen empfohlen [1].

GraphQL-Server – einfache Integration dank Spring Boot und „graphql-java“

Eine Spring-Boot-Applikation ist schnell erstellt. Im Internet gibt es hierfür eine große Anzahl an Tutorials sowie Erklärungen zum Schnellstart. Als erstklassiger Startpunkt sei hier auf den Spring Initializr [2] verwiesen. Dieser erzeugt nach Auswahl weniger Parameter – wie der Spring-Boot-Version sowie weiterer Spring-Module – den Quelltext einer direkt ausführbaren Applikation.

Nach erfolgtem Download des funktionsfähigen Spring-Boot-Grundgerüsts müssen für die Verwendung von GraphQL zwei weitere Dependencies in der pom.xml hinzugefügt werden (Listing 1).

Listing 1: Spring Boot GraphQL – Dependencys com.graphql-java graphql-spring-boot-starter 5.0.2 com.graphql-java graphql-java-tools 5.2.3

Durch die zusätzlichen Pakete stehen folgende Funktionalitäten zur Verfügung:

Parsing des GraphQL-SchemasTransformieren eines GraphQL Requests zur Weiterverarbeitung in der ApplikationslogikNahtlose Einbettung des GraphQL-Servers in Spring Boot

Die Integration in die Spring-Boot-Applikation führt zu:

automatischem Suchen und Parsen der Schemadateien (*.graphqls unterhalb des resource-Ordners),der Einrichtung eines sofort nutzbaren API-Endpunkts /graphql undder Verarbeitung der Beans mit Spring IoC.

Weitere Informationen zur Einrichtung können der ausgezeichneten Dokumentation von www.baeldung.com entnommen werden [3]. Als Nächstes widmen wir uns der Erstellung des GraphQL-Schemas. Listing 2 zeigt ein Beispiel zum Auslesen und Schreiben von Nutzerdaten eines Blogs.

Listing 2: GraphQL-Serverschematype Query { getUser(id: Int!) : User} type Mutation { addBlogPost(newPost: BlogPostInput!) : BlogPost} input BlogPostInput { subject: String! content : String! userId:...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang