Commit f849eb23 authored by Robert Hostlowsky's avatar Robert Hostlowsky

Intro überarbeitet

parent 96881075
**STILL WIP** , just a collections of ideas...
# Intro
GitHub ermöglicht seit 2016 auf seine umfangreiche [API per GraphQL zuzugreifen](https://githubengineering.com/the-github-graphql-api/).
Auch die [New York Times verwendet GraphQL](https://open.nytimes.com/react-relay-and-graphql-under-the-hood-of-the-times-website-redesign-22fb62ea9764). Wie man GraphQL selbst einsetzen kann, soll in dieser Blog-Reihe gezeigt werden.
In diesem Artikel wird ein GraphQL Server - [spotify-graphql-server on Github](https://github.com/lowsky/spotify-graphql-server) -
für den Zugriff auf Spotify entwickelt.
# gql? Why?
2 years ago, gql?
a lot of news about gql,
* GitHub API, new york times...
Open source seit 2015
Neben der Referenz-implementierung von Facebook, sind viele Bibliotheken für verschiedene Programmiersprachen entstanden. [awesome]
Warum sollten wir uns das genauer ansehen?
* netzwerk: over-fetching, round-trips
* viele Client Versionen
* REST standard, aber ...
* wäre es nicht super, wenn beim Austausch automatisch
* * geprüft wird, ob die Daten vom Server im richtigen Format
* * das nicht per schema Validierung (z.B. per JsonSchema), funktioniert client seitig, aber
* * server - seitig: alte clients
In diesem Artikel werden wir uns
* kurz die Grundlagen und die idealen Use-Cases und Anwendungsfelder ansehen
* anhand eines einfachen Beispiels für Spotify Musik Daten einem eigenen Server implementieren
(GraphQL GATEWAY)
* Nutzung in einem client
* ? eine existierende Platform
* und sehen, wie in bestehendes System integriert werden kann
Grundlagen...
Wer an Board von Flugzeugen Internet-Zugänge über eine Sateliten-Verbingung genutzt hat, musste feststellen, dass dabei die höheren Antwortzeiten sofort negativ spürbar werden. Selbst das Browsen von Internetseiten in Mobilfunknetzen fühlt sich "schneller" an.
Es sind solche Netzwerkbedingungen, die eine angepasste Kommunikation erfordern.
Facebook hat dafür GraphQL entwickelt, um auch bei solchen schlechten Verbindungen eine angenehme Bedienung der Facebook App zu ermöglichen, und setzt es seit 2012 produktiv ein.
Ausserdem sollten alle verschiedene Client-Versionen flexibel über die gleiche Schnittstelle unterstützt werden können.
----
Story für Einleitung: ???
Auch GitHub ermöglicht seit 2016 auf seine umfangreiche [API per GraphQL](https://githubengineering.com/the-github-graphql-api/) zuzugreifen, um das Backend (REST erzeugte bis zu 60%) zu entlasten.
Die [New York Times](https://open.nytimes.com/react-relay-and-graphql-under-the-hood-of-the-times-website-redesign-22fb62ea9764) verwendet ebenfalls GraphQL als Altenative zu REST, um die Komplexität der REST Schnittstelle zu verringern.
Als ich neulich an Board eines Flugzeuges einen Internet-Zugang über eine Sateliten-Verbingung nutzen konnte, war ich überrascht, wie sich "Internet anfühlt", wenn Antwortzeiten deutlich spürbar werden.
Vor kurzem stellte auch Amazon mit AppSync einen GraphQL Service und Tooling vor.
Selbst heutige Mobilfunkverbindung fühlen sich gewöhnlich schneller an...
Seit 2015 ist die Spezifikation und Referenz-implementierung von Facebook Open-Source, so dass seitdem, viele Bibliotheken für alle aktuellen Programmiersprachen entstanden sind!
Es ist aber nicht die Übertragung, denn sie ist schnell, sondern die Verzögerungen bis zum Verbindungsaufbau und bis zur eintreffenden Antwort.
Wer ein vollständiges BaaS benötigt, findet mit [Graph.cool](https://www.graph.cool/) einen Service Provider der eine Datenbank mit beliebiges Datenbank-Schema betreibt und alle CRUD Operationen mit GraphQL zu Verfügung stellt. Ausserdem wird angeboten den Service auch on-prem im eigenen Datacenter zu betreiben.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment