Commit 0b045ed7 authored by Robert Hostlowsky's avatar Robert Hostlowsky

formatting issued in grundlagen.

parent f849eb23
# Grundlagen
Zuerst wollen wir in diesem Abschnitt,
erfahren, was GraphQL genau ist und
Zuerst wollen wir in diesem Abschnitt erfahren, was GraphQL genau ist und
wie es für die Kommunikation zwischen Client und Server eingesetzt werden kann.
Im nächten Abschnitt werden wir dann einen GraphQL Server für Spotify Musik Daten implementiern.
## 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 hat sich dann ein großes Ökosystem an Bibliotheken und Tools für verschiedene Programmiersprachen für Server und Client entwickelt hat.
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 Abfragesprache
* GraphQL ist ein zentraler Http Endpoint zur Abfrage aus verschiedenen Datenquellen
* 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:
Per Spotify API suchen wir nach einem Künstler, und seinen Alben mit der Liste der Namen der Tracks/Titel.
Wir suchen per Spotify API nach einem Künstler, seinen Alben mit der Liste der Namen der Tracks/Titel.
Im Gegensatz zu REST, we folgende Endpoints von der Client Seite (mehrmals) abgefragt werden müssen:
Im Gegensatz zu REST, wobei folgende Endpoints von der Client Seite (mehrmals) abgefragt werden müssen:
```
https://api.spotify.com/v1/search?type=artist
......@@ -31,7 +31,7 @@ https://api.spotify.com/v1/artists/{artist-id}/albums
https://api.spotify.com/v1/albums/{album-id}/tracks
```
müssen wir bei GraphQL nur genau **eine** Abfrage **für alle Infos** an einen **einzigen Endpunkt** an den Server absetzen.
können wir bei GraphQL mit nur **einer** Abfrage an einen **einzigen** Endpunkt **alle Infos** vom Server bekommen:
```
queryArtist(byName:"Marilyn"){
......@@ -67,7 +67,7 @@ Es gäbe zwar auch die Möglichkeit, zum Beispiel verschiedene Repräsentationen
Das ist bei GraphQL nicht mehr nötig!
Außerdem kann nun auch schnell überprüft werden, ob ein angefordertes Attribut überhaupt existiert:
Eingebaute Validierung: Außerdem kann nun auch schnell überprüft werden, ob ein angefordertes Attribut überhaupt existiert:
Fehler, dass ein erwartetes `Nachname` Feld "leer" bleibt, weil stattdessen `surname` benutzt werden müsste, sind damit Vergangenheit!
<!-- later
......
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