Möchten Sie mit Ihrem Team teilnehmen? Profitieren Sie von unseren Gruppenrabatten! Schreiben Sie an events@dpunkt.de

GraphQL für Java-Anwendungen

24. März 2021, 9-17 Uhr (online)



Effizient Daten austauschen und gleichzeitig auch noch einfach in der Entwicklung sein – all das verspricht die Abfragesprache GraphQL!
Eine Kern-Idee von GraphQL ist, dass Clients je nach Use-Case selbst bestimmen können, welche Daten sie von einem Server abfragen und somit nie zu wenig oder zu viele Daten in einem Request lesen. Das soll auch die Entwicklung des Backends einfach und flexibel halten, da der Server nicht auf die konkreten Anforderungen eines konkreten Clients achten muss, denn jeder Client fragt einfach selbst individuell die für ihn relevanten Daten ab. GraphQL bricht dabei mit vielen erlernten und vertrauten Konzepten aus der REST-Architektur und gilt deshalb den einen als Teufelszeug und anderen gerade deshalb als Heilsbringer.

In diesem Workshop werden uns die Grundlagen und Konzepte von GraphQL ansehen, die programmiersprachenunabhängig sind. Anhand einer Beispielanwendung sehen wir uns an, was zu tun ist, um eine GraphQL-API für dein Java-Backend zu entwickeln und zu veröffentlichen.

Dabei überprüfen wir kritisch, inwiefern gängige Aussagen über GraphQL ("REST-Alternative", "SQL für APIs") zutreffend sind, sodass Teilnehmer hinterher entscheiden könnt, ob GraphQL für ihr Projekt eine gute oder schlechte Wahl ist.

Vorkenntnisse

Der Workshop richtet sich an Software-Entwickler*innen und -Architekt*innen, die mit Schnittstellen zu tun haben und offen für neue Konzepte und Ideen außerhalb ausgetretener Pfade sind. Um an dem Workshop erfolgreich teilzunehmen, solltest sie sich mit den zeitgemäßen Konzepten zur Entwicklung von Java-basierten Backend-Anwendungen auskennen (insb. Dependency Injection, JPA, REST).

Die Beispielanwendung und die Übungen sind mit Spring Boot implementiert. Die spezifischen Spring-Boot-Features, die wir nutzen, sollten aber auch für jene verständlich sein, die Java-EE/Jakarta-EE-Anwendungen bauen, und sind auch auf entsprechende Umgebungen übertragbar. Die GraphQL Frameworks, die wir uns ansehen, laufen sowohl mit Spring Boot als auch Java EE/Jakarta EE (und anderen Server-Frameworks).

Lernziele

* Was ist GraphQL und wofür kann man es einsetzen?
* Wie werden mit GraphQL Schnittstellen definiert und Abfragen dagegen abgesetzt?
* Wie können GraphQL-APIs mit Java implementiert und für eigene Anwendungen bereitgestellt werden?

Agenda

* Einführung in GraphQL, was ist das überhaupt? * Mögliche Anwendungsszenarien
* Syntax der Abfragesprache
* GraphQL-Server mit graphql-java und graphql-java-tools
* Definition eines GraphQL Schema
* Zugriff auf REST- und Datenbank-Ressourcen
* Caching, Performance Optimierung
Sie benötigen einen Laptop der über mindestens 1 GByte freien Festplattenspeicher (für die Beispiel-Anwendung samt Testdaten) verfügt.
Auf dem Laptop sollte für die Übungen installiert sein: * Java-Entwicklungsumgebung (z.B. IDEA oder Eclipse).
* Der Laptop muss in der Lage sein, Git Repositories von GitHub zu klonen und über Gradle bzw. Maven-Module aus dem Internet installieren zu können (bitte entsprechende Proxy-, Firewall-, VPN-Konfigurationen überprüfen!)
* JDK, mind. Java 11
* Optional: das Frontend der Beispiel-Anwendung ist in JavaScript/TypeScript mit React geschrieben. Um es zu verwenden (kein Muss für den Workshop!), muss auf dem Laptop Node.js und npm installiert sein. npm muss in der Lage sein, Packages aus dem Internet zu installieren.

 

Technische Anforderungen

Bringen Sie einen eigenen Laptop mit, der über mindestens 100 MB freien Festplattenspeicher (für Testdaten) verfügt.

Auf dem Laptop sollte für die Übungen installiert sein:
- Java Entwicklungsumgebung (z.B. IDEA, Eclipse, VS Code mit Java Extensions)
- Gradle
- der Laptop muss in der Lage sein, Git Repositories von GitHub zu klonen und über Gradle Module aus dem Internet installieren zu können (bitte entsprechende Proxy-, Firewall-, VPN-Konfigurationen überprüfen!)
-JDK, mind. Java 11
- Optional: das Frontend der Beispiel-Anwendung ist in JavaScript/TypeScript mit React geschrieben. Um es zu verwenden (kein Muss für den Workshop!), muss auf dem Laptop NodeJS und npm installiert sein. Npm muss in der Lage sein, Packages aus dem Internet zu installieren.

Speaker

 

Nils Hartmann
Nils Hartmann ist freiberuflicher Softwareentwickler, -architekt und Trainer aus Hamburg. Er programmiert in Java und JavaScript/TypeScript mit dem Schwerpunkt server- und clientseitiger Entwicklung von Enterprise-Anwendungen. Nils spricht gerne auf Konferenzen und bietet Workshops und Schulungen an.

betterCode-Newsletter

Sie möchten über die betterCode
auf dem Laufenden gehalten werden?

 

Anmelden