API 属性
网关使用这些属性控制某些策略的行为。通常,提供属性,但策略还提供属性设置。
在 IBM® API Connect 中,可创建包含特定于目录的值的 API 属性,这样不需要修改源代码。然后,可在 API 定义中其他位置引用属性。
表中显示了各种策略的预先提供的 API 属性。
| 属性 | 必需 | 描述 | 数据类型 |
|---|---|---|---|
| 否 | 如果设置为值 true,那么针对调用 target-url 的变量定义引用的任何请求参数对 URL 进行了解码。缺省行为是不解码任何参数,从而将其发送到目标 URL 而不对其进行更改。 | 布尔 | |
| 否 | 如果使用值 true 设置或者未指定,那么会禁止将 X-IBM-Client-Id HTTP 头(如果在 API 请求上指定)发送到调用目标 URL。
如果使用值 false 设置,那么不会再禁止将 X-IBM-Client-Id HTTP 头发送到调用目标 URL。 此属性仅受 DataPower® Gateway(与 v5 兼容) 支持。如果使用的是 DataPower API Gateway,那么,要实现相同的功能,请将 header-control 属性添加到您的 API 的 OpenAPI 定义中的 invoke 策略配置中,如以下示例所示。 禁止 X-Client-ID 头,如下所示:
禁止 userId 查询参数,如下所示:
|
布尔 | |
| 否 | 如果设置为 false,那么会阻止将策略中最后一个调用替换为代理。在网关中执行 API 时,非 false 的任何其他值(不区分大小写)可能会导致将策略中最后一个调用替换为代理。 | 布尔 | |
| 否 | 如果设置为值 true,那么调用和代理策略的目标 URL 的查询参数值中的所有“+”字符都将编码为“%2F”。 缺省值为 false。 |
布尔 | |
| 否 | 如果设置为值 true,那么将允许对响应规则实施 JSON 解析器。如果响应主体大小大于在 DataPower 域中设置的 JSON 解析器限制,那么将返回状态码 500。 注: x-ibm-gateway-api-enforce-response-limits 属性受 DataPower Gateway(与 v5 兼容) 支持,但不受 DataPower API Gateway 支持。但是,如果使用的是 DataPower API Gateway,请考虑在 API 组合件中使用 Parse 策略来实施这些限制。
有关不同网关类型的信息,请参阅 API Connect 网关类型。 |
布尔 | |
| 否 | 如果设置为值 true,那么 invoke 策略会在 HTTP
DELETE 方法上发送有效内容。此属性可用于 IBM
DataPower Gateway V7.7.1.1 和更高版本。 缺省值为 false。 |
布尔 |
| 属性 | 必需 | 描述 | 数据类型 |
|---|---|---|---|
| 否 | 在 IBM API Management V4.0 中,如果映射源值来自数组,那么仅输出第一个值。在 API Connect 中,缺省行为是返回所有数组元素值的数组。要保持与 IBM API Management V4.0 的兼容性,请将此 API 属性设置为 true,以仅返回第一个数组元素值。 | 布尔 | |
| 否 | 缺省情况下,会解析映射配置中找到的任何 API Connect 变量。例如,$(request.headers.content-type) 解析为请求的内容类型头。由于在每个映射属性中搜索变量可能会占用大量 CPU,因此可以通过将此 API 属性设置为 false 而选择不解析变量。如果此属性未配置或设置为任何其他值,那么搜索这些变量的现有行为将继续。请注意,如果引用的变量来自配置的映射输入,那么映射值 JavaScript 片段中的变量用法不会更改。 | 布尔 | |
| 否 | 此属性控制映射策略如何处理空数组的输出;它可以具有下列值:
|
字符串 | |
| 否 | 如果策略输出定义引用了非常复杂的模式定义(例如,通过导入非常复杂的 WSDL 模式生成的一些非常复杂的模式),那么将此属性的值设置为 true 以提高映射策略的性能。 当引用的定义作为模式的值提供时,映射策略将从 API 定义构建模式。如果该模式没有生成循环引用的引用,那么将此属性设置为 true 可能会在生成某些已经生成的相同模式时提供性能优势。但是,在模式非常复杂(具有许多潜在循环引用)的情况下,生成的模式可能有所不同,因为增强的模式处理以不同方式处理循环引用。因此,在这种情况下,您应检查生成的输出以确定所获得的性能优势是否与映射策略输出中的更改无关。 此属性的缺省值是 false,用于维持现有的行为和性能。 |
布尔 | |
| 否 | 将此 API 属性的值设置为 true 以允许将来自 map 策略的输入数据的值为 null 的属性映射到输出文档。缺省情况下,来自 map 策略的输入数据的值为 null 的属性不映射到输出文档。 | 布尔 | |
| 否 | 具有数字数据或布尔数据的 XML 输入元素不含任何元数据用于指示此数据应作为字符串值进行映射还是作为特定数据类型进行映射。如果将此属性的值设置为 false,那么 XML 输入元素始终作为字符串进行映射。如果将该值设置为 true,那么数字值或布尔值 XML 输入元素将作为来自输入模式的对应数据类型进行映射。 缺省值为 false。 |
布尔 | |
| 否 | 此属性可控制 map 策略处理 XML 输入空元素的方式,并且当输入文档为 XML 时,它会影响 JSON 输出;它可以具有下列值:
|
布尔 | |
| 否 | 将此属性的值设置为整数值,指定循环模式定义的最大允许迭代次数。 缺省值为 1,这意味着不遵循循环模式定义。最大可能值为 5。如果指定大于 5 的整数值,那么假定值为 5。如果指定非数字值,那么将假定值为 1。 |
字符串 | |
| x-ibm-gateway-emulate-v4-plan-rate-limit | 否 | 缺省情况下,在 IBM API Connect V2018 中,如果仅为计划而不是为计划中的 API 操作配置了速率限制,那么无论请求 API 中的哪个操作,都会为 API 整体设置单个速率限制阈值。此行为与 IBM API Management V4.0 不同,后者为 API 中的每个操作单独设置速率限制。要将 V2018 的行为更改为模拟 V4.0 行为,请将此 API 属性设置为值 true。 | 布尔 |
| 否 | 将此属性设置为 true,以便在下列特定情况下,将在输出中为未映射的必需属性或不存在输入数据的必需属性生成缺省值:
缺省情况下,输出中不存在这些必需属性。如果将 x-ibm-gateway-map-emulate-v4-default-required-properties API 属性设置为 true,那么这些必需属性将显示在输出中。如果输出模式定义了输出属性的 default 属性,那么将使用指定的缺省值,否则将根据数据类型来分配缺省值,如下所示:
如果未指定 x-ibm-gateway-map-emulate-v4-default-required-properties API 属性或者值不是 true,那么不会在输出中使用其缺省值来创建这些必需属性。 |
布尔 |
| 属性 | 必需 | 描述 | 数据类型 |
|---|---|---|---|
| x-ibm-gateway-proxy-suppress-clientid | 否 | 设置为 false 会触发将 X-IBM-Client-Id HTTP 头(如果在 API 请求上指定)或请求 URL 中的 client_id 查询参数插入代理 target-url。如果未指定,或者使用值 true 进行设置,那么会禁止将此参数发送到代理 target-url。 此属性仅受 DataPower Gateway(与 v5 兼容) 支持。如果使用的是 DataPower API Gateway,那么,要实现相同的功能,请将 header-control 属性添加到您的 API 的 OpenAPI 定义中的 invoke 策略配置中,如以下示例所示。 禁止 X-Client-ID 头,如下所示:
禁止 userId 查询参数,如下所示:
|
布尔 |
| x-ibm-gateway-optimize-invoke | 否 | 如果设置为 false,那么会阻止将策略中最后一个调用替换为代理。在网关中执行 API 时,非 false 的任何其他值(不区分大小写)可能会导致将策略中最后一个调用替换为代理。 | 布尔 |
| x-ibm-gateway-queryparam-encode-plus-char | 否 | 如果设置为值 true,那么调用和代理策略的目标 URL 的查询参数值中的所有“+”字符都将编码为“%2F”。 缺省值为 false。 |
布尔 |
| x-ibm-gateway-api-enforce-response-limits | 否 | 如果设置为值 true,那么将允许对响应规则实施 JSON 解析器。如果响应主体大小大于在 DataPower 域中设置的 JSON 解析器限制,那么将返回状态码 500。 | 布尔 |
| 属性 | 必需 | 描述 | 数据类型 |
|---|---|---|---|
| 否 | 如果设置为 true,那么将对 API Connect 变量引用进行解析。如果希望策略忽略 API Connect 变量引用,请将其设置为 false。 缺省值为 true。 此属性适用于以下策略:
注: Map 策略的 x-ibm-gateway-map-resolve-apic-variables API 属性设置将覆盖此属性设置。
|
布尔 |
| 属性 | 必需 | 描述 | 数据类型 |
|---|---|---|---|
| 否 | 如果设置为 true,那么将填充 request.body 和 message.body 上下文变量以供定制策略的 GatewayScript 操作中的 apim.getvariable('request.body') 或 apim.getvariable('message.body') 函数调用对其进行访问。如果定制策略不使用需要填充这些变量的 GatewayScript 操作,请将此属性设置为 false,或者不指定此属性。 缺省值为 false。 |
布尔 |