- Home
- /
- Blog
- /
- Glossar
- /
- IT Technologien
- /
- GraphQL
Was ist GraphQL?
GraphQL ist eine Sprache zur Abfrage von Datengraphen, die zur Darstellung stark vernetzter Informationen dienen. Sie wurde von Facebook entwickelt, um die Auslieferung von Newsfeed-Daten zu verbessern. Mit dieser Alternative zu REST können Entwickler Anfragen strukturieren, die mit einem einzigen API-Aufruf Daten aus mehreren Quellen gleichzeitig abrufen. GraphQL macht APIs schneller, flexibler und entwicklerfreundlicher.
Wie funktioniert eine GraphQL-API?
Die Spezifikation der GraphQL Abfragesprache wurde 2015 veröffentlicht. Seitdem wurden sowohl Server- als auch Client-Libraries in fast jeder belieben Programmiersprache implementiert.
GraphQL erlaubt sowohl lesende als auch schreibende bzw. verändernde Abfragen. Die Flexibilität zeigt sich auch darin, dass die Datenfeldabfrage gezielt definiert werden kann, und dass es auch keine Limitierung bei der Abfrage von verschachtelten Informationen gibt. Sie können alle mit einer Abfrage gewonnen werden. Dies bietet eine robuste Möglichkeit, Daten über eine einzige HTTP-URL abzufragen, sodass Entwickler die Struktur jeder API-Anfrage vollständig gestalten und die zurückgegebenen Daten optimieren können.
Durch das Typsystem können Sie eigene definierte Datenstrukturen erstellen und dadurch ein eigenes individuelles System erschaffen, um Anfragen zu validieren. Da GraphQL selbst lediglich die Spezifikation der Schnittstelle zwischen Client und Server ist wurden verschiedene Server-Laufzeitumgebungen zum Ausführen der Abfragen von der Software-Gemeinde implementiert. Es stehen Bibliotheken für diverse Programmiersprachen zur Verfügung – beispielsweise Go, Java, JavaScript, PHP, Python oder Ruby.
Mit GraphQL können Sie ein hochgradig wandelbares API-Gerüst erstellen, welches nicht nur plattform- und anwendungsübergreifend zugänglich ist, sondern sich perfekt auf die Eigenschaften Ihrer Applikation abstimmen lässt.
Unterschied von GraphQL-API und REST-API
GraphQL hat sich als unglaublich effektiv für den Aufbau moderner Mobil- und Webanwendungen erwiesen und bietet Entwicklern eine flexible, umfassende Technologie zum Extrahieren von Daten, die effizienter und weniger umfangreich als REST-APIs ist. Das eigentliche Geheimnis besteht darin, dass Entwickler nur die relevanten und absolut notwendigen Daten laden, auch wenn diese aus mehreren Quellen stammen.
Als Facebook eine API-Datenversion des News Feed benötigte, zog es RESTful-Serverressourcen in Betracht, stellte jedoch Unterschiede zwischen den Daten in der App und den benötigten Serverabfragen fest. GraphQL ermöglichte es den Datenabruf auf eine neue Art und Weise anzugehen, um die Abfragegeschwindigkeit auch aus verschiedenen Quellen zu verbessern.
GraphQL unterscheidet sich stark von einer Standard REST-API, bei der Sie normalerweise einen bestimmten Datensatz pro Query abfragen, woraufhin dieser komplett ausgegeben wird. Es zielt eher darauf ab, die REST-Philosophie zu verbessern, indem es Ihnen ermöglicht, nach einem bestimmten Datenelement zu fragen, welches auch aus mehreren verschiedenen REST-APIs kombiniert werden kann.
Die Serverinstanz liefert dabei exakt die in der Abfrage definierten Informationen aus, sodass weder mehr noch weniger Daten als benötigt über die Schnittstelle versendet werden. Insbesondere, wenn Nutzer mobiler Endgeräte nur eine leistungsschwache Internetverbindung haben, zahlt sich das aus.
Einsatz bei Wilde-IT
GraphQL zeichnet sich dadurch aus, dass es genau die Daten liefert, die Frontend-Entwickler moderner Web- und Mobilanwendungen benötigen. Auch bei Wilde-IT hat sich GraphQL als Lösung bewährt, um Daten aus mehreren Quellen zu aggregieren, Daten zu spezifizieren und Daten zu beschreiben. Das bedeutet komplexere Abfragen und mehr Verarbeitungsaufwand für den Server. Dennoch lohnt es sich, wenn Sie beispielsweise Leistungsprobleme oder Einschränkungen bei der Verwendung von REST-APIs für Ihre Anwendungen und Websites haben.