Configurare il plugin
Configurare il pluginAbilitare la modifica a basso livello delle persisted queries

Abilitare la modifica a basso livello delle persisted queries

In GraphQL, le direttive sono funzioni che permettono di modificare il risultato di un campo. Ad esempio, una direttiva @strUpperCase trasformerà il valore del campo in maiuscolo.

Esistono 2 tipi di direttive: quelle che si applicano allo schema e vengono eseguite sempre, su ogni query; e quelle che si applicano alla query, dall'utente o dall'applicazione lato client.

Gato GraphQL implementa numerose funzionalità tramite direttive da applicare allo schema. Le direttive corrispondenti vengono aggiunte alla query tramite un'interfaccia utente.

È il caso, ad esempio, del Cache Control e dell'Access Control. Il Cache Control funziona applicando la direttiva @cacheControl allo schema, ed è gestito dal plugin tramite l'interfaccia utente di Cache Control List:

Definizione di una politica di cache control

Alcuni esempi di direttive di tipo schema che regolano l'Access Control:

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

Abilitare la modifica a basso livello

Il modulo "Low-Level Persisted Query Editing" è disabilitato per impostazione predefinita. Quando è abilitato, tutte le direttive da applicare allo schema diventano disponibili nell'editor GraphiQL durante la modifica delle persisted queries.

Direttive di tipo schema

In questo modo, possiamo aggiungere le direttive di tipo schema direttamente nella query GraphQL durante la modifica della persisted query, evitando l'interfaccia utente.

Ad esempio, definire il Cache Control può essere fatto direttamente nella persisted query, impostando la direttiva @cacheControl con l'argomento maxAge sul campo:

Direttive di tipo schema disponibili nell'editor di Persisted queries