Eine API erstellen
Eine API erstellenEinen custom endpoint erstellen

Einen custom endpoint erstellen

Zusätzlich zum single endpoint unterstützt Gato GraphQL auch custom endpoints, um Daten für ein benutzerdefiniertes Schema (das nur eine Teilmenge der verfügbaren Typen enthält) und Benutzervalidierungsregeln abzurufen und zu veröffentlichen, um die Anforderungen verschiedener Benutzer und Anwendungen zu erfüllen.

Wir können so viele custom endpoints erstellen, wie wir benötigen.

Zum Beispiel können wir einen custom endpoint erstellen für:

  • Einen bestimmten Client oder Benutzer, unter /graphql/my-client/
  • Eine Gruppe von Benutzern mit erweitertem Zugang zu Funktionen (wie PRO-Benutzer), unter /graphql/pro-users/
  • Die Bereitstellung von Daten für unsere mobile App, unter /graphql/mobile-app/
  • Den Zugang zu einer Drittanbieter-API, unter /graphql/external-api/
  • Weitere Fälle

Editor des Custom Endpoint

Den custom endpoint in einer Anwendung ausführen

Folge den Anweisungen in der Anleitung Verbindung zum GraphQL-Server von einem Client aus.

Auf alle custom endpoints zugreifen

Wenn du im Menü des Plugins auf "Custom Endpoints" klickst, wird die Liste aller erstellten custom endpoints angezeigt:

Custom Endpoints im Adminbereich
Custom Endpoints im Adminbereich

Einen neuen custom endpoint erstellen

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

Einen neuen Custom Endpoint erstellen

Gib ihm einen Titel, stelle sicher, dass der Permalink dem gewünschten entspricht, wähle die Schema-Konfiguration aus und passe die Optionen an. Wenn alles bereit ist, klicke auf die Schaltfläche Publish, und der custom endpoint wird erstellt, wobei der konfigurierte Permalink als Endpoint-URL verwendet wird.

Links zum Endpoint (sowie zur Quelle und zu den Clients) werden im Seitenleistenpanel "Custom Endpoint Overview" angezeigt:

Custom Endpoint Overview

Schema-Konfiguration

Welche Elemente das Schema enthält und welchen Zugang Benutzer darauf haben, wird in der Schema-Konfiguration festgelegt.

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

Auswahl der Schema-Konfiguration

Private Endpoints

Wenn du den Status des Custom Endpoint auf private setzt, ist der Endpoint nur für den Admin-Benutzer zugänglich. Dadurch wird verhindert, dass unsere Daten versehentlich mit Benutzern geteilt werden, die keinen Zugang dazu haben sollten.

Zum Beispiel können wir private Custom Endpoints erstellen, um die Anwendung zu verwalten, beispielsweise zum Abrufen von Daten für die Erstellung von Berichten mit unseren Metriken.

Privater Custom Endpoint

Passwortgeschützte Endpoints

Wenn wir einen Custom Endpoint für einen bestimmten Client erstellen, können wir ihm ein Passwort zuweisen, um eine zusätzliche Sicherheitsebene bereitzustellen, die sicherstellt, dass nur dieser Client auf den Endpoint zugreift.

Passwortgeschützter Custom Endpoint

Beim ersten Zugriff auf einen passwortgeschützten Endpoint (ob beim direkten Zugriff auf den Endpoint oder auf seine GraphiQL- oder Interactive Schema-Clients) erscheint ein Bildschirm, der nach dem Passwort fragt:

Passwortgeschützter Custom Endpoint: Erster Zugriff

Sobald das Passwort eingegeben und validiert wurde, kann der Benutzer auf den gewünschten Endpoint oder Client zugreifen:

Passwortgeschützter Custom Endpoint: Nach der Autorisierung

Eine Endpoint-Hierarchie erstellen

Lies die Anweisungen zum Erstellen einer API-Hierarchie.

Den custom endpoint deaktivieren

Setze in den Optionen "Enabled" auf false, um den custom endpoint zu deaktivieren.

Diese Funktion kann nützlich sein, wenn der custom endpoint Teil einer API-Hierarchie ist, um seinen untergeordneten custom endpoints ein gemeinsames Verhalten bereitzustellen, ohne dass er selbst ausgeführt werden muss.

Den custom endpoint beschreiben

Verwende das Feld "Excerpt" im Panel der Dokumenteinstellungen, um dem custom endpoint eine Beschreibung zu geben.

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

Clients des Endpoints

Jeder custom endpoint verfügt über einen eigenen Satz von Clients zur Interaktion.

GraphiQL-Client

Füge ?view=graphiql zum Endpoint hinzu, um auf seinen GraphiQL-Client zuzugreifen:

GraphiQL-Client des custom endpoint

Der GraphiQL-Client kann auch beim Bearbeiten des Custom Endpoint geöffnet werden, im Seitenleistenpanel "Custom Endpoint Overview":

Link zum GraphiQL-Client des custom endpoint im Editor

Ebenso kann der Client von der Listenseite der Custom Endpoints geöffnet werden, über den Link "GraphiQL", wenn du mit der Maus über den Eintrag fährst:

Link zum GraphiQL-Client des custom endpoint in der Liste
Link zum GraphiQL-Client des custom endpoint in der Liste

Um den GraphiQL-Client zu deaktivieren, setze die Option "Expose GraphiQL client?" im Editor des Custom Endpoint auf false.

Interactive Schema (Voyager) Client

Füge ?view=schema zum Endpoint hinzu, um auf seinen Interactive Schema-Client zuzugreifen und das Schema des Endpoints zu visualisieren und damit zu interagieren:

Voyager-Client des custom endpoint

Der Interactive Schema-Client kann auch beim Bearbeiten des Custom Endpoint geöffnet werden, im Seitenleistenpanel "Custom Endpoint Overview":

Link zum Interactive Schema-Client des custom endpoint im Editor

Ebenso kann der Client von der Listenseite der Custom Endpoints geöffnet werden, über den Link "Interactive Schema", wenn du mit der Maus über den Eintrag fährst:

Link zum Interactive Schema-Client des custom endpoint in der Liste
Link zum Interactive Schema-Client des custom endpoint in der Liste

Um den Interactive Schema-Client zu deaktivieren, setze die Option "Expose the Interactive Schema client?" im Editor des Custom Endpoint auf false.

Den Endpoint vor der Veröffentlichung testen

Ein custom endpoint mit dem Status draft oder pending ist nur für Schema-Editor-Benutzer verfügbar. Das gibt ihnen die Möglichkeit:

  • GraphQL queries dagegen auszuführen
  • Auf die GraphiQL- und Voyager-Clients des Endpoints zuzugreifen

Wir können also einen custom endpoint erstellen, ihm eine Schema-Konfiguration zuweisen, ihn als draft oder pending veröffentlichen und ihn testen (z. B. prüfen, ob seine Zugriffssteuerungsregeln angemessen sind).

Erst nach der Freigabe setzen wir seinen Status auf publish, wodurch der custom endpoint für alle verfügbar wird.

Die Quelle anzeigen

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

Quelle des custom endpoint


Konfiguration im WordPress-Editor

Dies sind die Felder im Hauptbereich des Editors:

FeldBeschreibung
TitelTitel des custom endpoint
Schema-KonfigurationWähle aus dem Dropdown-Menü die Schema-Konfiguration aus, die für den custom endpoint gilt, oder eine dieser Optionen:
  • "Default": Die Schema-Konfiguration ist die in den Plugin-Einstellungen ausgewählte
  • "None": Der custom endpoint ist uneingeschränkt
  • "Inherit from parent": Verwendet dieselbe Schema-Konfiguration wie der übergeordnete custom endpoint.
    Diese Option ist verfügbar, wenn das Modul "API Hierarchy" aktiviert ist und der custom endpoint eine übergeordnete Query hat (ausgewählt in den Dokumenteinstellungen)
OptionenPasse das Verhalten des custom endpoint an:
  • Enabled?: Ob der custom endpoint aktiviert ist.
    Es ist nützlich, einen custom endpoint zu deaktivieren, wenn er eine übergeordnete Query in einer API-Hierarchie ist
  • Expose GraphiQL client?: Aktiviert/deaktiviert die Verknüpfung eines GraphiQL-Clients mit dem Endpoint, zugänglich unter ?view=graphiql
  • Expose the Interactive Schema client?: Aktiviert/deaktiviert die Verknüpfung eines Interactive Schema-Clients mit dem Endpoint, zugänglich unter ?view=schema
  • Inherit query from ancestor(s)?: Verwendet dieselbe Query wie der übergeordnete custom endpoint.
    Diese Option ist verfügbar, wenn das Modul "API Hierarchy" aktiviert ist und der custom endpoint eine übergeordnete Query hat (ausgewählt in den Dokumenteinstellungen)

Dies sind die Felder in den Dokumenteinstellungen:

FeldBeschreibung
PermalinkDer Endpoint, unter dem der custom endpoint verfügbar sein wird
KategorienErmöglicht die Kategorisierung des custom endpoint.
Z. B.: mobile, app, usw.
ExcerptStellt eine Beschreibung für den custom endpoint bereit.
Dieses Feld ist verfügbar, wenn das Modul "Excerpt as Description" aktiviert ist
SeitenattributeWählt einen übergeordneten custom endpoint aus.
Dieses Feld ist verfügbar, wenn das Modul "API Hierarchy" aktiviert ist