Einführung in GraphQL und Gato GraphQL
Willkommen in den Gato GraphQL-Anleitungen. Hier findest du viele Informationen zur Installation, Konfiguration und Nutzung des Gato GraphQL-Plugins auf deiner WordPress-Website.
Was ist GraphQL
GraphQL ist eine API-Spezifikation, die es Clients (wie einer Website im Browser oder einer mobilen App) ermöglicht, genau die Daten anzugeben, die sie benötigen – und der Server, der die API implementiert, liefert genau diese zurück.
Eine GraphQL-Query sieht so aus:
query {
posts {
id
title
content
author {
id
name
}
}
}Die Antwort des Servers liegt im JSON-Format vor und enthält die Daten in derselben Struktur wie die Query. Sie sieht so aus:
{
"data": {
"posts": [
{
"id": 1,
"title": "Hello world",
"content": "<p>How are you doing?</p>",
"author": {
"id": 1,
"name": "Leo"
}
},
{
"id": 2,
"title": "Scheduled post",
"content": "<p>This post is scheduled to be published in the future.</p>",
"author": {
"id": 2,
"name": "Markus"
}
},
{
"id": 3,
"title": "Lorem ipsum",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>",
"author": {
"id": 3,
"name": "Socrates"
}
}
]
}
}GraphQL-Server können Daten auch „mutieren" (d. h. erstellen und aktualisieren). In diesem Fall muss das Operationsschlüsselwort query durch mutation ersetzt werden:
mutation {
createPost(input: {
title: "New post",
contentAs: { html: "Lorem ipsum dolor sit amet" }
}) {
id
status
}
}Besuche die offizielle GraphQL-Website unter graphql.org.
Was ist Gato GraphQL
Gato GraphQL ist ein Plugin für WordPress, das die Website in einen GraphQL-Server verwandelt und es dir ermöglicht, Daten der WordPress-Website mithilfe der GraphQL-Sprache abzurufen und zu verändern.
Gato GraphQL ist bestrebt:
Einfach zu verwenden
Die WordPress-Philosophie besagt, dass jeder – unabhängig von technischen Kenntnissen – in der Lage sein muss, die Software zu nutzen. Das Plugin versucht, dieser Philosophie gerecht zu werden, indem es so einfach wie möglich gemacht wird, eine API zu erstellen und mit ihr zu interagieren.
Als Beispiel: Gato GraphQL ermöglicht das Veröffentlichen von persisted queries (das sind Endpunkte, die vordefinierte Daten bereitstellen, ähnlich wie REST-Endpunkte) über die vom WordPress-Editor bereitgestellte Benutzeroberfläche; ähnlich wie das Schreiben eines Beitrags ist es für alle zugänglich.
Schnell
Das Auflösen einer GraphQL-Query erfordert normalerweise das Durchlaufen eines Graphen, der die Daten aller abgefragten Entitäten enthält. Je mehr Knoten der Graph hat und je tiefer er ist, desto langsamer wird dieser Prozess (sogar exponentiell langsamer).
Gato GraphQL verfolgt einen anderen Ansatz: Es verwendet eine Komponentenmodell-Struktur zur Auflösung der GraphQL-Query (anstelle eines Graphen), wobei ein Prozess zum Einsatz kommt, der linear mit der Tiefe der Query wächst (nicht exponentiell).
Darüber hinaus werden nur die im GraphQL-Query angeforderten Schema-Elemente kompiliert, validiert und ausgeführt – nicht das gesamte GraphQL-Schema. Das bedeutet: Egal ob deine WordPress-Website 3 oder 30 Custom Post Types installiert hat, die Auflösungszeit für die Query bleibt dieselbe.
Leistungsstark
APIs fungieren als das wichtigste Gateway für die Interaktion des Clients mit dem Server; es ist wichtig, dass eine API in keiner Hinsicht eingeschränkt ist, um jeden Anforderung erfüllen zu können.
Dieses Plugin ermöglicht es, die Ergebnisse der Ausführung einer Query durch benutzerdefinierte Funktionalität, externe APIs und Cloud-basierte Dienste zu verändern. Die abgefragten Daten können nach Bedarf iteriert und manipuliert werden, und die Ausgabe der Query kann ebenfalls auf jede gewünschte Weise verändert werden – es gibt kaum etwas, das nicht möglich ist.
Sicher
Eine GraphQL-API könnte leicht falsch verwaltet werden, sodass alle Daten der WordPress-Website für jeden zugänglich sind – einschließlich böswilliger Akteure. Der GraphQL-Server muss geeignete Sicherheitsmaßnahmen bereitstellen, um sicherzustellen, dass nur die vorgesehenen Nutzer auf die Daten zugreifen.
Dieses Plugin nimmt Sicherheit sehr ernst und hat mehrere Sicherheitsmaßnahmen nativ implementiert. Der einzelne Endpunkt kann deaktiviert werden; Daten können über persisted queries bereitgestellt werden; die Gewährung des Datenzugriffs erfolgt über konfigurierbare Access-Control-Listen (basierend darauf, ob der Nutzer eingeloggt ist oder nicht, eine bestimmte Rolle oder Berechtigung hat oder eine benutzerdefinierte Regel greift); und die API kann als öffentlich oder privat definiert werden.
Zukunftsorientiert
GraphQL ist ein Standard, der sich ständig weiterentwickelt, und die Community schlägt kontinuierlich Ideen vor, um neue Funktionen bereitzustellen, die künftig in die Spezifikation aufgenommen werden sollen.
Dieses Plugin mag nicht warten; es enthält bereits viele der vorgeschlagenen neuen Funktionen (wie Schema-Namespacing, die Ausführung mehrerer queries und andere) als Opt-in-Features, die vom Administrator explizit aktiviert werden müssen.