Persisted Queries
Persisted QueriesLow-Level Persisted Query Bewerking

Low-Level Persisted Query Bewerking

Included in the “Power Extensions” bundle

Maakt normaal verborgen directives (die functionaliteit in de GraphQL-server injecteren) zichtbaar bij het bewerken van een persisted query.

Beschrijving

In GraphQL zijn directives functies waarmee je het resultaat van een veld kunt aanpassen. Een directive @strUpperCase zet de waarde van een veld bijvoorbeeld om naar hoofdletters.

Er zijn 2 soorten directives: die op het schema worden toegepast en altijd worden uitgevoerd, bij elke query; en die op de query worden toegepast, door de gebruiker of de applicatie aan de clientkant.

In Gato GraphQL wordt een groot deel van de functionaliteit bij het oplossen van een query uitgevoerd via directives die op het schema worden toegepast.

Cache Control werkt bijvoorbeeld door directive @cacheControl op het schema toe te passen. Deze configuratie is standaard verborgen en wordt door de plugin via de gebruikersinterface beheerd:

Een cache control-beleid definiëren

Op dezelfde manier bieden deze directives toegangscontrole voor velden (en vergelijkbare directives bieden toegangscontrole voor directives):

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

Deze extensie Low-Level Persisted Query Editing maakt alle directives die op het schema worden toegepast beschikbaar in de GraphiQL-editor bij het bewerken van persisted queries, zodat je de gebruikersinterface kunt omzeilen en de schema-type directives direct in de persisted query kunt toevoegen.

Schema-type directives beschikbaar in de editor voor Persisted queries

Als voorbeeld kan Cache Control dan direct in de persisted query worden gedefinieerd door directive @cacheControl met argument maxAge op het veld in te stellen; of kan toegangscontrole direct worden gedefinieerd door de bijbehorende directive @validate... direct op het veld toe te voegen:

Schema-type directives