Configurar o plugin
Configurar o pluginHabilitando a edição de baixo nível das queries persistidas

Habilitando a edição de baixo nível das queries persistidas

Em GraphQL, as diretivas são funções que permitem modificar o resultado de um campo. Por exemplo, uma diretiva @strUpperCase transformará o valor do campo para o formato maiúsculo.

Existem 2 tipos de diretivas: as que são aplicadas ao schema e executadas sempre, em cada query; e as que são aplicadas à query, pelo usuário ou pela aplicação no lado do cliente.

O Gato GraphQL implementa muitas funcionalidades por meio de diretivas a serem aplicadas ao schema. As diretivas correspondentes são adicionadas à query por meio de uma interface de usuário.

É o caso, por exemplo, do Cache Control e do Access Control. O Cache Control funciona aplicando a diretiva @cacheControl ao schema, e é gerenciado pelo plugin por meio da interface de usuário de Cache Control List:

Definindo uma política de cache control

Alguns exemplos de diretivas do tipo schema que regulam o Access Control:

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

Habilitando a edição de baixo nível

O módulo "Low-Level Persisted Query Editing" está desabilitado por padrão. Quando habilitado, todas as diretivas a serem aplicadas ao schema ficam disponíveis no editor GraphiQL ao editar queries persistidas.

Diretivas do tipo schema

Dessa forma, é possível adicionar as diretivas do tipo schema diretamente na query GraphQL ao editar a query persistida, dispensando a interface de usuário.

Por exemplo, definir o Cache Control pode ser feito diretamente na query persistida, configurando a diretiva @cacheControl com o argumento maxAge no campo:

Diretivas do tipo schema disponíveis no editor de Persisted queries