GraphQL执行

使用GraphQLExecute策略通过子查询执行GraphQL查询。

网关支持

表 1. 该表显示了支持此策略的网关以及对应的策略版本
网关 策略版本
DataPower® API Gateway 2.2.0.0DataPower API Gateway 10.0.4.0及更高版本)

2.2.1.0DataPower API Gateway 10.5.2.0及更高版本)

本主题介绍如何在程序集用户界面中配置策略;有关如何在OpenAPI源中配置策略的详细信息,请参阅graphql-execute

关于

GraphQLExecute策略通过使用子查询来执行GraphQL查询。 该策略可将原始GraphQL查询拆分成不同的子查询,然后以不同的方式进行处理。 GraphQLExecute策略支持以下四种不同的子查询作为目标:
  1. root; 包含要在后台调用的核心GraphQL查询。
  2. __introspection;包含反省查询,可在 "DataPower API Gateway上进行本地处理,无需调用后台。
  3. __rateLimit;包含 "__rateLimit查询,用于指定要接收的不同速率限制数据。
  4. __cost;包含 "__cost查询,用于指定要接收的不同成本数据。 该查询必须采用IBM GraphQL成本指令规范中指定的格式,请参阅成本分析结果的自省: __cost.
root、"__rateLimit"和 "__introspection"目标可按任意顺序执行,也可同时执行。 如果没有预期的响应数据,可以随时执行 "__cost目标。 如果预期会有响应数据,则 "__cost目标会在 "root目标之后执行,以便准确返回正确的响应成本数据。 执行所有目标后,GraphQLExecute策略会将所有响应合并在一起。 为使各个目标的响应能够正确地相互合并为最终的单一响应,GraphQL执行策略必须包含与每一级响应数据相关联的所有自省类型。

属性

下表列示了策略属性,指示属性是否为必需属性,指定输入的有效值和缺省值并指定值的数据类型。

表 2. GraphQL执行策略属性
属性标签 必需 描述 数据类型
职务 False 策略的标题。

缺省值为 graphql-execute

字符串
描述 False 对策略的描述。 字符串
目标 False 子查询的目标。 有效值为:
  • root; 包含要在后台调用的核心GraphQL查询。
  • __introspection;包含反省查询,可在 "DataPower API Gateway上进行本地处理,无需调用后台。
  • __rateLimit;包含 "__rateLimit查询,用于指定要接收的不同速率限制数据。
  • __cost;包含 "__cost查询,用于指定要接收的不同成本数据。 该查询必须采用IBM GraphQL成本指令规范中指定的格式,请参阅成本分析结果的自省: __cost.
字符串