插件配置启用持久化 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 编辑器中可用。

通过这种方式,可以在编辑持久化 Query 时直接在 GraphQL query 中添加 schema 型指令,从而跳过用户界面。
例如,可以通过在字段上设置带有 maxAge 参数的 @cacheControl 指令,直接在持久化 Query 中定义 Cache Control:

Prev
Next