GraphQL API-Entwicklung

Facebooks Abfragesprache für datengetriebene Unternehmensanwendungen

In diesem Workshop gewinnen Sie tiefe Einblicke in die GraphQL-Spezifikation, die Umsetzungen von GraphQL APIs auf Serverseite und die clientseitige Entwicklung mit React und GraphQL-Clientbibliotheken. Sie erlernen, wie verschiedene Datenquellen, wie etwa SQL- bzw. NoSQL-Datenbanken oder RESTful-Services, eingebunden und mittels Resolver-Funktionen und Data-Batching effizient abgefragt werden können. Abschließend werden verschiedene Möglichkeiten der sinnvollen Einbettung von GraphQL APIs in die Gesamtarchitektur, mögliche Migrationsstrategien wie beispielweise der Einsatz als API-Gateway für Microservices und Makroservices erläutert.

Einstieg

  • Unternehmensanwendungen mit Client-Server-Kommunikation per GraphQL als Antwort auf die Probleme beim Einsatz von Webservices mit dem Programmierparadigma „Representational State Transfer“
  • Vorteil einer vergleichsweise losen Kopplung bei gleichzeitig komplexen Datenabfragen
  • Spezifikation und Umsetzung von GraphQL-konformen Datenhierarchien
  • Effiziente Abfrage und Änderung von Datenquellen
  • Integration von GraphQL in bestehende Anwendungsarchitekturen
  • Der richtige Umgang mit datenintensiven Anwendungen
  • Entwurf, Veröffentlichung, Einsatz und Wartung von GraphQL APIs im Unternehmen und der Öffentlichkeit
  • GraphQL-Serveranwendungen mit Node.js
  • Konzepte für modulare, skalierbare und wartbare GraphQL-Serveranwendungen
  • GraphQL Queries und Mutations
  • „N+1 select“-Problem mittels Batching sowie DataLoader lösen

Erstellung von GraphQL APIs

  • GraphQL-Architektur
  • Pro und Kontra zu REST und Hypermedia
  • Werkzeuge
  • Versionierung
  • GraphiQL (browserbasierte IDE für GraphQL)
  • Erstellung von GraphQL-Schemas mit Built-in Types
    • Scalar
    • Object
    • Interface
    • Union
    • Input
    • List
    • Enum
  • Erstellung von GraphQL-Schemas mit Custom Types
  • GraphQL shorthand notation
  • Implementierung von Value-Resolvern
  • Erstellung von Queries und Mutations
  • Verwendung von Variablen
  • Verwendung von Direktiven
  • Verwendung von Subscriptions (Pub / Sub)
  • Best Practices

Testen von GraphQL / React / Relay

  • Werkzeuge für Unit Tests
    • Jest
    • Jasmine
    • Mocha
  • Unit Tests bei GraphQL
  • Unit Tests und React-Komponenten
  • Ende-zu-Ende-Tests
    • Selenium
    • PhantomJS
    • WebDriver

Konsumieren von GraphQL APIs

  • Einsatz via HTTP / AJAX
  • Lokka, Apollo, Relay als Client
  • Wiederverwendung mit Query-Fragmenten

React, Relay und GraphQL

  • Babel for ECMAScript 2015, JSX & RelayQL
  • Verwendung von Webpack
  • Erstellung von React-Komponenten, Stateless Functions, DOM-Elemente
  • Composing React-Komponenten
  • React component lifecycle
  • React-Zustandsverwaltung und Datenbindung (Initial / Update Loop)
  • Arbeiten mit Formularelementen
  • Verwendung des React-Router / React-Relay-Router
  • Server rendering
  • Relay client GraphQL extensions
  • Relay Node interface
  • Paging mit Relay

GraphQL in der Systemarchitektur

  • GraphQL für Datenbankabfragen
  • GraphQL als API-Aggregator (Backend for frontend)
  • GraphQL APIs für Microservices (Backend for frontend)
  • Skalierung von GraphQL APIs
  • Optimistic UI / Long-running transactions und Sagas

Voraussetzungen

  • Einfaches JavaScript-Wissen
  • Node.js, F# oder Python nach Wahl (vollständige Gruppe vorausgesetzt)
  • Texteditor (z. B. Sublime Text, Notepad++ oder Atom)
Unsere Veranstaltungsorte von dieser / diesem SchulungTrainingSeminarKurs (nach oben)Berlin, Dresden, Frankfurt am Main, Hamburg, Hannover, Karlsruhe, Köln, Leipzig, Magdeburg, München, Stuttgart und Inhouse.

Fortbildung oder Weiterbildung zu GraphQL API-Entwicklung – wir setzen nur auf erfahrene Talente als GraphQL API-Entwicklung Trainer. Das Credo von Mike Bild lautet „Stück für Stück zu etwas Großem. Das ist für mich emergentes Design“. Mehr zu ihm und den Beweggründen unserer anderen Trainer erfahren Sie bei seiner Biographie (direkt erreichbar per Bild).