Persisted Queries低级别 Persisted Query 编辑
低级别 Persisted Query 编辑
Included in the “Power Extensions” bundle
在编辑 Persisted Query 时,使通常隐藏的指令(向 GraphQL 服务器注入某些功能)可见。
说明
在 GraphQL 中,指令是能够修改字段结果的函数。例如,@strUpperCase 指令会将字段的值转换为大写格式。
指令有两种类型:一种应用于 schema,在每次 query 执行时始终生效;另一种由用户或客户端应用程序应用于 query。
在 Gato GraphQL 中,解析 query 时涉及的大量功能通过应用于 schema 的指令来执行。
例如,Cache Control 通过在 schema 上应用 @cacheControl 指令来实现。该配置默认隐藏,由插件通过用户界面来处理:

类似地,以下指令为字段提供访问控制(类似的指令也为指令提供访问控制):
@disableAccess@validateIsUserLoggedIn@validateIsUserNotLoggedIn@validateDoesLoggedInUserHaveAnyRole.@validateDoesLoggedInUserHaveAnyCapability@validateDoesVisitorComeFromAnyAllowedIP@validateDoesVisitorNotComeFromAnyDeniedIP
Low-Level Persisted Query Editing 扩展使所有应用于 schema 的指令在编辑 Persisted Query 时可在 GraphiQL 编辑器中使用,让您无需通过用户界面,即可直接在 Persisted Query 中添加 schema 类型的指令。

例如,Cache Control 的定义可以直接在 Persisted Query 中完成,通过在字段上设置带有 maxAge 参数的 @cacheControl 指令;或者通过直接在字段上添加对应的 @validate... 指令来定义访问控制:

Next