Eine API erstellen
Eine API erstellenEine persistierte Query erstellen

Eine persistierte Query erstellen

Eine persistierte Query ist eine Kombination aus GraphQL- und REST-APIs: Sie ist eine normale GraphQL-Query, die auf der Website veröffentlicht wird und unter ihrer eigenen URL erreichbar ist, ähnlich einem REST-Endpoint.

So können wir beispielsweise Daten für eine Website über folgende persistierte queries bereitstellen:

  • /graphql-query/homepage-posts
  • /graphql-query/user-widget
  • /graphql-query/post-content und sie ausführen, indem wir die ID des Beitrags übergeben: ?post=1
  • /graphql-query/post-content/es um den Inhalt des Beitrags ins Spanische zu übersetzen
  • Weitere

Editor für persistierte queries

Die persistierte Query ausführen

Sobald die persistierte Query veröffentlicht ist, können wir sie über ihren Permalink ausführen.

Die persistierte Query kann direkt im Browser ausgeführt werden, da sie über GET abgerufen wird, und wir erhalten die angeforderten Daten im JSON-Format:

Eine persistierte Query im Browser ausführen

Die persistierte Query in einer Anwendung ausführen

Bitte folge den Anweisungen in der Anleitung Vom Client aus mit dem GraphQL-Server verbinden.

Alle persistierten queries abrufen

Wenn du im Menü des Plugins auf "Persisted Queries" klickst, wird die Liste aller erstellten persistierten queries angezeigt:

Persistierte queries im Admin-Bereich
Persistierte queries im Admin-Bereich

Eine neue persistierte Query erstellen

Klicke auf die Schaltfläche "Add New GraphQL persisted query", um den WordPress-Editor zu öffnen:

Eine persistierte Query erstellen

Vergib einen Titel und stelle sicher, dass der Permalink der erwartete ist, gib die GraphQL-Query ein, wähle die Schema-Konfiguration aus und passe die Optionen an. Wenn du fertig bist, klicke auf die Schaltfläche Veröffentlichen, und der Permalink wird zum Endpoint der persistierten Query.

Der Link zum Endpoint (und zur Quelle) wird im Seitenpanel "Persisted Query Endpoint Overview" angezeigt:

Persisted Query Endpoint Overview

Standardmäßig hat der Endpoint der persistierten Query den Pfad /graphql-query/, und dieser Wert ist über die Einstellungen konfigurierbar:

Einstellungen für persistierte queries
Einstellungen für persistierte queries

Query-Editor

Der GraphiQL-Client im Editor ist der Ort, an dem du die persistierte GraphQL-Query eingibst:

Der GraphiQL-Client der persistierten Query

Der Editor wird mit dem Explorer-Add-on geliefert, mit dem du die Query zusammenstellen kannst, indem du auf die Felder im linken Seitenpanel klickst. Ein Klick auf die Schaltfläche "Run" führt die Query aus, um die Antwort in der Vorschau anzuzeigen:

Eine persistierte Query mit dem Explorer zusammenstellen

Schema-Konfiguration

Wer auf die in der persistierten Query angeforderten Felder zugreifen darf, wird in der Schema-Konfiguration festgelegt.

Wir müssen daher eine Schema-Konfiguration erstellen und sie dann aus dem Dropdown-Menü auswählen (oder keine verwenden oder die Standardkonfiguration):

Die Schema-Konfiguration auswählen

Private persistierte queries

Wenn du den Status der persistierten Query auf privat setzt, ist der Endpoint nur für den Administrator zugänglich. Damit wird verhindert, dass unsere Daten unbeabsichtigt mit Benutzern geteilt werden, die keinen Zugriff darauf haben sollten.

So können wir beispielsweise private persistierte queries erstellen, die bei der Verwaltung der Anwendung helfen, etwa beim Abrufen von Daten zur Erstellung von Berichten mit unseren Metriken.

Private persistierte Query

Passwortgeschützte persistierte queries

Wenn wir eine persistierte Query für einen bestimmten Kunden erstellen, können wir ihr ein Passwort zuweisen, um eine zusätzliche Sicherheitsebene bereitzustellen, die sicherstellt, dass nur dieser Kunde auf den Endpoint zugreifen kann.

Passwortgeschützte persistierte Query

Wenn du zum ersten Mal auf eine passwortgeschützte persistierte Query zugreifst, erscheint ein Bildschirm, der nach dem Passwort fragt:

Passwortgeschützte persistierte Query: Erster Zugriff

Erst wenn das Passwort eingegeben und validiert wurde, erhält der Benutzer Zugang zum gewünschten Endpoint.

Die persistierte Query über URL-Parameter dynamisch machen

Der Wert jeder Variable kann beim Ausführen der persistierten Query über einen URL-Parameter (mit dem Variablennamen) gesetzt werden. Wenn die Option "Do URL params override variables?" aktiviert ist, hat der URL-Parameter Vorrang. Andernfalls hat der im Variablen-Dictionary definierte Wert Vorrang (sofern vorhanden).

In dieser Query wird beispielsweise die Anzahl der Ergebnisse über die Variable $limit mit einem Standardwert von 3 gesteuert:

Variablen in einer persistierten Query verwenden

Wenn diese persistierte Query ausgeführt wird und ?limit=5 übergeben wird, liefert die Query stattdessen 5 Ergebnisse zurück:

Den Wert von Variablen in einer persistierten Query überschreiben

Eine Hierarchie für persistierte queries erstellen

Bitte lies die Anweisungen unter Eine API-Hierarchie erstellen.

Die persistierte Query deaktivieren

Setze in den Optionen "Enabled" auf false, um die persistierte Query zu deaktivieren.

Diese Funktion kann nützlich sein, wenn die persistierte Query Teil einer API-Hierarchie ist, um ihren untergeordneten persistierten queries ein gemeinsames Verhalten bereitzustellen, ohne selbst ausgeführt werden zu müssen.

Die persistierte Query beschreiben

Verwende das Feld "Auszug" im Panel der Dokumenteinstellungen, um der persistierten Query eine Beschreibung zu geben.

Weitere Informationen findest du in der Anleitung Eine Beschreibung zur API hinzufügen.

Die persistierte Query vor der Online-Veröffentlichung testen

Eine persistierte Query mit dem Status Entwurf oder Ausstehend steht nur den Schema-Editor-Benutzern zur Verfügung.

Wir können also eine persistierte Query erstellen, ihr eine Schema-Konfiguration zuweisen, sie als Entwurf oder Ausstehend veröffentlichen und sie testen (z. B. prüfen, ob ihre Zugangskontrollregeln geeignet sind).

Nach der Genehmigung setzen wir ihren Status auf Veröffentlicht, wodurch die persistierte Query für alle verfügbar wird.

Die Quelle anzeigen

Wenn du ?view=source an den Endpoint anhängst, wird die Konfiguration der persistierten Query angezeigt (sofern der Benutzer angemeldet ist und seine Rolle darauf Zugriff hat):

Quelle der persistierten Query


Konfiguration im WordPress-Editor

Dies sind die Eingabefelder im Hauptbereich des Editors:

FeldBeschreibung
TitelTitel der persistierten Query
GraphiQL-ClientEditor zum Schreiben und Ausführen der GraphQL-Query:
  • Schreibe die Query in den Textbereich
  • Deklariere Variablen in der Query und deklariere ihre Werte im Variablenfeld unten
  • Klicke auf die Schaltfläche "Run", um die Query auszuführen
  • Erhalte die Ergebnisse im Feld auf der rechten Seite
  • Klicke auf "Docs", um die Schema-Informationen zu inspizieren
Der Explorer (nur angezeigt, wenn das Modul GraphiQL Explorer aktiviert ist) erlaubt es, auf Felder zu klicken, die automatisch zur Query hinzugefügt werden
Schema-KonfigurationWähle aus dem Dropdown-Menü die Schema-Konfiguration aus, die auf die persistierte Query angewendet werden soll, oder eine dieser Optionen:
  • "Default": Die Schema-Konfiguration ist die in den Plugin-Einstellungen ausgewählte
  • "None": Die persistierte Query ist unbeschränkt
  • "Inherit from parent": Verwende dieselbe Schema-Konfiguration wie die übergeordnete persistierte Query.
    Diese Option ist verfügbar, wenn das Modul API Hierarchy aktiviert ist und die persistierte Query eine übergeordnete Query hat (ausgewählt in den Dokumenteinstellungen)
OptionenPasse das Verhalten der persistierten Query an:
  • Enabled?: Ob die persistierte Query aktiviert ist.
    Es ist nützlich, eine persistierte Query zu deaktivieren, wenn sie eine übergeordnete Query in einer API-Hierarchie ist
  • Do URL params override variables?: Erlaubt URL-Parametern, die Werte von im GraphiQL-Client definierten Variablen zu überschreiben
  • Inherit query from ancestor(s)?: Verwende dieselbe Query wie die übergeordnete persistierte Query.
    Diese Option ist verfügbar, wenn das Modul API Hierarchy aktiviert ist und die persistierte Query eine übergeordnete Query hat (ausgewählt in den Dokumenteinstellungen)

Dies sind die Eingabefelder in den Dokumenteinstellungen:

FeldBeschreibung
PermalinkDer Endpoint, unter dem die persistierte Query verfügbar sein wird
KategorienErmöglicht die Kategorisierung der persistierten Query.
Z. B.: mobile, app, usw.
AuszugStellt eine Beschreibung für die persistierte Query bereit.
Dieses Feld ist verfügbar, wenn das Modul Excerpt as Description aktiviert ist
SeitenattributeWähle eine übergeordnete persistierte Query aus.
Dieses Feld ist verfügbar, wenn das Modul API Hierarchy aktiviert ist