Commit 7a179caa authored by Robert Hostlowsky's avatar Robert Hostlowsky

Grundlagen -> Intro

parent 0b045ed7
......@@ -6,18 +6,12 @@ Im nächten Abschnitt werden wir dann einen GraphQL Server für Spotify Musik Da
## Was ist GraphQL?
GraphQL ist eine Spezifikation einer Client-Server-Kommunikation (über http).
Tatsächlich wurde 2015 eine ausführliche Spezifikation veröffentlicht (siehe [graphql.org](http://graphql.org))
auf deren Basis sich dann ein großes Ökosystem an Bibliotheken und Tools für verschiedene Programmiersprachen für Server und Client entwickelt hat.
Eine Übersicht findet man bei ["awesome GraphQL"](https://github.com/chentsulin/awesome-graphq)
GraphQL ist eine Spezifikation einer Client-Server-Kommunikation (über http):
* GraphQL ist eine Abfragesprache
* GraphQL ist ein zentraler Http Endpoint zur Abfrage aus verschiedenen dahinterliegenden Datenquellen
Hinter der Entwicklung von GraphQL stand für Facebook das **Ziel**, eine **effiziente und flexible client-server-Kommunikation** zu ermöglichen:
GraphQL ist eine optimierte Schnittstelle für spezifischen Anforderungen von mobilen Geräten in mobilen Netzen, und wird seid 2012 von Facebook eingesetzt.
### Unterschied zu REST
Für einen **Vergleich** zu REST können wir folgendes Beispiel heranziehen:
Wir suchen per Spotify API nach einem Künstler, seinen Alben mit der Liste der Namen der Tracks/Titel.
......@@ -349,5 +343,9 @@ einzeln auf die Ergebnisse warten zu müssen!
Mit diesen Möglichkeiten können wir alle mächtigen Bibliotheken ohne großen Aufwand integrieren und nutzen!
Es ist einfach, z.B. Mongoose zu verwenden. Oder Github-, Twitter- oder beliebige andere Client-Bibliotheken.
Um einen ersten Eindruck zu vermitteln, habe ich die Abfrage der REST-API von Spotify weiter unten implementiert.
Um einen ersten Eindruck zu vermitteln, werden wir im nächsten Abschnitt die Abfrage der REST-API von Spotify implementieren, um einen GraphQL-API Gateway zu erzeugen.
## Weitere Funktionalität
GraphQL erlaubt auch modifizierende Operationen (sog. "mutations") und Benachrichtigungen mit dem Client per pub-sub Mechanismus (sog. "subscriptions").
......@@ -3,7 +3,8 @@
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.
Tatsächlich wurde 2015 eine ausführliche Spezifikation veröffentlicht (siehe [graphql.org](http://graphql.org)) auf deren Basis sich dann ein großes Ökosystem an Bibliotheken und Tools für verschiedene Programmiersprachen für Server und Client entwickelt hat.
Eine Übersicht findet man bei ["awesome GraphQL"](https://github.com/chentsulin/awesome-graphq)
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.
......
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