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 Schulung, Training, Seminar, Kurs (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 Robert Meyer lautet „Mehr als Faktenwissen: Wissen gut und primär nachhaltig zu vermitteln“. Mehr zu ihm und den Beweggründen unserer anderen Trainer erfahren Sie bei seiner Biographie (direkt erreichbar per Bild).

Nach oben