W-JAX | 4. - 8. November 2019, München

Workshop: GraphQL für Java – eine praktische Einführung

Workshop
Bis Konferenzbeginn: ✓ Kollegenrabatt ✓ Bis zu 259 € sparen Jetzt anmelden
Infos
Montag, 4. November 2019
09:00 - 17:00
Raum:
Garmisch
Buchungshinweis:
GraphQL-Workshop

GraphQL ist eine Sprache zur Abfrage von Daten von einem Backend, mit der die Clients selber bestimmen, welche Daten sie je nach Use Case lesen oder schreiben wollen. GraphQL verspricht nicht nur Effizienz zur Laufzeit, sondern auch eine einfache Entwicklung, Pflege und Verwendung der entwickelten APIs.

In diesem Workshop stelle ich Grundlagen und Konzepte von GraphQL anhand einer Java-Anwendung vor, zeige, wie die Sprache aussieht und wie Du eine GraphQL-Schnittstelle definieren und in Java implementieren kannst, die dabei auf Daten aus unterschiedlichen Quellen (REST APIs, Datenbanken) zugreift. Wir werden kritisch prüfen, ob GraphQL hält, was es verspricht, und ob der Einsatz auch für deine  Anwendung lohnenswert ist.

Effizient Daten austauschen und gleichzeitig auch noch einfach in der Entwicklung sein – all’ das verspricht die Abfragesprache GraphQL! Was GraphQL genau ist, wie ihr GraphQL in Eurem Projekt einsetzen und könnt, und ob diese Versprechen gehalten werden können, werden wir in diesem Workshop untersuchen wie die Frage, ob GraphQL tatsächlich eine „Alternative zu REST“ sein kann, wie häufig behauptet wird.

Auch wenn GraphQL wohl noch kein Mainstream ist, steigen Verbreitung und Interesse an der Technologie an. Offenbar ist es für viele Entwickler reizvoll, ihre Daten über eine allgemeine Schnittstelle zur Verfügung stellen zu können, von der (ihre eigenen oder fremden) Clients genau die Daten abfragen können, die sie für einen Anwendungsfall, zum Beispiel eine bestimmte Ansicht im Frontend, benötigen. Das soll auch die Entwicklung des Backends einfach und flexibel halten, da der Server nicht auf die konkreten Anforderungen eines konkreten Clients achten muss, da ja jeder Client selber individuell die für ihn relevanten Daten abfragen kann, ähnlich wie dies in einer Datenbank zum Beispiel mit SQL möglich ist.

In diesem Workshop sehen wir uns an, wie (und ob!) das technisch funktioniert und was Du tun musst, um eine GraphQL-API für dein Java-Backend bzw. deine Daten zu entwickeln und zu veröffentlichen. Dabei sehen wir uns an, wie die abgefragten Daten aus verschiedenen Quellen geladen werden können (z.B. aus Microservices über HTTP oder Datenbanken über JPA) und diskutieren mögliche Einsatzszenarien und -Architekturen für GraphQL-basierte Anwendungen.  Wir besprechen, welche Probleme beim Einsatz von GraphQL zum Beispiel hinsichtlich Performance auftreten können und welche Strategien es gibt, diese Probleme zu lösen oder zu minimieren. Wir werden in dem Workshop genügend Zeit haben, auch Fragen von Euch zu diskutieren.

1. Teil 

– Einführung in GraphQL – was ist GraphQL überhaupt?

– Mögliche Anwendungsszenarien

– Syntax der Abfrage-Sprache

– Vorstellung des Toolings

2. Teil 

– GraphQL-Server mit graphql-java

– Definition eines GraphQL Schemas

– DataFetcher zum Ermitteln von Daten

3. Teil  

– Bereitstellen der GraphQL Schnittstelle über HTTP

– Zugriff auf REST- und Datenbank-Ressourcen

– DataLoader

4. Teil 

– Caching, Performance Optimierung

– Alternative GraphQL Server mit graphql-java-tools

– Bei Interesse: Ausblick auf GraphQL Client mit React und TypeScript

– Gerne können jederzeit Fragen gestellt und weitere Themen diskutiert werden!

Zielgruppe sind Software-Entwickler und -Architekten 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 Du dich mit den zeitgemäßen Konzepten zur Entwicklung von Java-basierten Backend-Anwendungen auskennen  (insb. Dependency Injection, JPA, REST).

Die Beispiel-Anwendung und die Übungen sind mit Spring Boot implementiert. Die spezifischen Spring Boot-Features, die wir nutzen, sollten für dich aber auch verständlich sein, wenn Du JEE Anwendungen baust und sind auch auf JEE Umgebungen übertragbar. Die GraphQL Frameworks die wir uns ansehen, laufen sowohl mit Spring Boot als auch JEE (und anderen Server-Frameworks).

Wenn Du an den Übungen teilnehmen willst, bring bitte einen Laptop mit, auf dem folgende Software installiert ist:

* Entwicklungsumgebung (z.B. IDEA, Eclipse, VS Code mit Java Extensions)

* Gradle

* Git

* Ganz wichtig: Der Laptop muss in der Lage sein, Git Repositories von GitHub zu klonen und über Gradle Module aus dem Internet (W-LAN)  installieren zu können (bitte entsprechende Proxy-, Firewall-, VPN- und Rechte-Konfigurationen überprüfen!)

* JDK 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 Rechner NodeJS und npm installiert sein. Npm muss in der Lage sein, Packages aus dem Internet zu installieren.


Alle News der Java-Welt:
Alle News der Java-Welt:

Behind the Tracks of W-JAX 2019

Agile & Culture
Teamwork & Methoden

Data Access & Machine Learning
Speicherung, Processing & mehr

Clouds, Kubernets & Serverless
Alles rund um Cloud

Core Java & JVM Languages
Ausblicke & Best Practices

DevOps & Continuous Delivery
Deployment, Docker & mehr

Microservices
Strukturen & Frameworks

Web Development & JavaScript
JS & Webtechnologien

Performance & Security
Sichere Webanwendungen

Serverside Java
Spring, JDK & mehr

Digital Transformation & Innovation
Technologien & Vorgehensweisen

Software-Architektur
Best Practices