插件配置
插件配置启用持久化 Query 的低级编辑

启用持久化 Query 的低级编辑

在 GraphQL 中,指令是可以修改字段结果的函数。例如,@strUpperCase 指令会将字段的值转换为大写格式。

指令有两种类型:一种是应用于 schema 的指令,在每次 query 执行时始终运行;另一种是由用户或客户端应用程序应用于 query 的指令。

Gato GraphQL 通过应用于 schema 的指令实现了大量功能。相应的指令通过某种用户界面添加到 query 中。

例如,提供 Cache Control 和 Access Control 就是这种情况。Cache Control 通过在 schema 上应用 @cacheControl 指令来实现,并由插件通过 Cache Control List 用户界面进行管理:

定义缓存控制策略

一些用于控制 Access Control 的 schema 型指令示例:

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

启用低级编辑

「Low-Level Persisted Query Editing」模块默认处于禁用状态。启用后,编辑持久化 Query 时,应用于 schema 的所有指令将在 GraphiQL 编辑器中可用。

Schema 型指令

通过这种方式,可以在编辑持久化 Query 时直接在 GraphQL query 中添加 schema 型指令,从而跳过用户界面。

例如,可以通过在字段上设置带有 maxAge 参数的 @cacheControl 指令,直接在持久化 Query 中定义 Cache Control:

持久化 Query 编辑器中可用的 Schema 型指令