Persisted Queries
Persisted QueriesÉdition de Bas Niveau des Persisted Queries

Édition de Bas Niveau des Persisted Queries

Included in the “Power Extensions” bundle

Rend visibles les directives normalement cachées (qui injectent des fonctionnalités dans le serveur GraphQL) lors de la modification d'une persisted query.

Description

Dans GraphQL, les directives sont des fonctions qui permettent de modifier le résultat d'un champ. Par exemple, une directive @strUpperCase transformera la valeur du champ en format majuscules.

Il existe 2 types de directives : celles qui sont appliquées au schéma et sont exécutées à chaque requête ; et celles qui sont appliquées à la requête, par l'utilisateur ou l'application côté client.

Dans Gato GraphQL, de nombreuses fonctionnalités impliquées lors de la résolution d'une requête sont exécutées via des directives appliquées au schéma.

Par exemple, Cache Control fonctionne en appliquant la directive @cacheControl au schéma. Cette configuration est cachée par défaut et est prise en charge par le plugin via l'interface utilisateur :

Définir une politique de cache control

De même, ces directives fournissent le contrôle d'accès pour les champs (et des directives similaires fournissent le contrôle d'accès pour les directives) :

  • @disableAccess
  • @validateIsUserLoggedIn
  • @validateIsUserNotLoggedIn
  • @validateDoesLoggedInUserHaveAnyRole.
  • @validateDoesLoggedInUserHaveAnyCapability
  • @validateDoesVisitorComeFromAnyAllowedIP
  • @validateDoesVisitorNotComeFromAnyDeniedIP

Cette extension Édition de Bas Niveau des Persisted Queries rend toutes les directives appliquées au schéma disponibles dans l'éditeur GraphiQL lors de la modification des persisted queries, vous permettant d'éviter l'interface utilisateur et d'ajouter directement les directives de type schéma dans la persisted query.

Directives de type schéma disponibles dans l'éditeur de Persisted queries

Par exemple, la définition du Cache Control peut alors être effectuée directement dans la persisted query, en définissant la directive @cacheControl avec l'argument maxAge sur le champ ; ou le contrôle d'accès peut être défini directement, en ajoutant la directive @validate... correspondante directement sur le champ :

Directives de type schéma