GraphQL für Java-Anwendungen

GraphQL ist eine Sprache zur Abfrage von Daten, die häufig als "Alternative zu REST" bezeichnet wird und mit der Clients selbst wählen können, welche Daten sie je Use-Case vom Server lesen oder schreiben wollen. Dabei verspricht GraphQL nicht nur Effizienz zur Laufzeit, sondern auch eine einfache Entwicklung und Pflege der damit entwickelten APIs.

In diesem Workshop lernen wir GraphQL anhand eines durchgängigen
Beispiels kennen: Wir sehen uns Grundlagen und Konzepte der Sprache
an, werden eine GraphQL-Schnittstelle definieren und eine
Implementierung dafür in Java entwickeln. Den Tag über haben wir
genügend Zeit, Eure eigenen Fragen zu besprechen und werden kritisch
die Vor- und Nachteile von GraphQL zu diskutieren. Nach dem Workshop
seid ihr in der Lage, zu entscheiden, ob und wie ihr GraphQL für eure
Anwendungen verwenden könnt.

Vorkenntnisse

- Java-Kenntnisse
- Allgemeine Kenntnisse der Entwicklung von Java Server Anwendungen (z.B. Spring Boot oder JEE). Die Beispiel-Anwendung ist in Spring Boot implementiert, die verwendeten Spring-Features (in erster Linie Dependency Injection) sollten aber auch für JEE Entwickler*innen verständlich und auf andere Umgebungen (z.B. CDI) übertragbar sein.

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

ab 9:00 Uhr Registrierung und Begrüßungskaffee

10:00 Uhr Beginn

* Einführung in GraphQL, was ist das überhaupt?
* Mögliche Anwendungsszenarien
* Syntax der Abfrage-Sprache
* Vorstellung des Toolings

12:00 Uhr - 13:00 Uhr Mittagspause

* GraphQL-Server mit graphql-java
* Definition eines GraphQL Schemas
* DataFetcher zum Ermitteln von Daten

14:30 Uhr - 14:45 Uhr Kaffeepause

* Bereitstellen der GraphQL Schnittstelle über HTTP
* Zugriff auf REST- und Datenbank-Ressourcen
* Caching, Performance Optimierung

16:15 Uhr - 16:30 Uhr Kaffeepause

* Alternative GraphQL Server mit graphql-java-tools
* Gerne können jederzeit Fragen gestellt und weitere Themen diskutiert werden!

 

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.

Herbstcampus-Newsletter

Sie möchten über den Herbstcampus
auf dem Laufenden gehalten werden?

 

Anmelden