Low-Level-Bearbeitung von Persisted Queries
Macht normalerweise verborgene Direktiven (die bestimmte Funktionen in den GraphQL-Server einschleusen) beim Bearbeiten einer Persisted Query sichtbar.
Beschreibung
In GraphQL sind Direktiven Funktionen, die es ermöglichen, das Ergebnis eines Feldes zu verändern. Zum Beispiel wandelt eine Direktive @strUpperCase den Wert des Feldes in Großbuchstaben um.
Es gibt 2 Arten von Direktiven: solche, die auf das Schema angewendet werden und bei jeder Query immer ausgeführt werden; und solche, die auf die Query angewendet werden, vom Benutzer oder der Anwendung auf der Client-Seite.
In Gato GraphQL wird ein Großteil der Funktionalität beim Auflösen einer Query durch Direktiven ausgeführt, die auf das Schema angewendet werden.
Zum Beispiel funktioniert Cache Control, indem die Direktive @cacheControl auf das Schema angewendet wird. Diese Konfiguration ist standardmäßig ausgeblendet und wird vom Plugin über die Benutzeroberfläche verwaltet:

Ebenso bieten diese Direktiven Zugriffskontrolle für Felder (und ähnliche Direktiven bieten Zugriffskontrolle für Direktiven):
@disableAccess@validateIsUserLoggedIn@validateIsUserNotLoggedIn@validateDoesLoggedInUserHaveAnyRole.@validateDoesLoggedInUserHaveAnyCapability@validateDoesVisitorComeFromAnyAllowedIP@validateDoesVisitorNotComeFromAnyDeniedIP
Diese Erweiterung Low-Level Persisted Query Editing macht alle auf das Schema angewendeten Direktiven im GraphiQL-Editor beim Bearbeiten von Persisted Queries verfügbar. So kannst du die Benutzeroberfläche umgehen und die Schema-Typ-Direktiven direkt in der Persisted Query hinzufügen.

Als Beispiel kann die Definition von Cache Control dann direkt in der Persisted Query vorgenommen werden, indem die Direktive @cacheControl mit dem Argument maxAge auf dem Feld gesetzt wird; oder die Zugriffskontrolle kann direkt definiert werden, indem die entsprechende @validate...-Direktive direkt auf dem Feld hinzugefügt wird:
