validate - DataPower API Gateway
使用 validate 策略针对模式验证组合件流中的有效内容。
网关支持
注: 此页面描述 DataPower® API Gateway中的 validate 策略实现。 如果您正在使用该功能 DataPower Gateway (v5 compatible),请参阅 validate - DataPower Gateway (兼容 v5 )。
有关不同类型的网关的信息,请参阅 API Connect 网关类型。
| 网关 | 策略版本 |
|---|---|
| DataPower API Gateway | 2.0.0 2.1.0 (DataPower API Gateway V 10.0.1.0 或更高版本) 2.2.0 (DataPower API Gateway V 10.0.2.0 或更高版本) 2.3.0 (DataPower API Gateway V 10.0.2.0 或更高版本) 2.4.0 (DataPower API Gateway V 10.0.4.0 或更高版本) 2.5.0 (DataPower API Gateway V 10.5.0.0 或更高版本) 2.6.0 (DataPower API Gateway V 10.5.0.2 或更高版本) 2.7.0 (DataPower API Gateway V 10.5.0.3 或更高版本) |
本主题介绍了如何在 OpenAPI 源中配置策略;有关如何在程序集用户界面中配置策略的详细信息,请参阅“验证” - DataPowerAPI Gateway。
关于
validate 策略具有以下格式:
- validate:
version: version
title: title
description: description
validate-against: validation_mechanism
.
.
.
properties_specific_to_the specified_validation_mechanism
.
.
.通过将具有 execute 字段的 assembly 扩展添加到 OpenAPI 定义文件来应用此策略。
注: 使用 DataPower API Gateway时, validate 策略的输入必须是已解析的数据。 生成已解析数据的一种方法是在组合件流中的 validate 策略之前使用
parse 策略,这将提供解析操作的显式控制。属性
下表描述了该策略的属性:
| 属性 | 必需 | 描述 | 数据类型 |
|---|---|---|---|
| version | 是 | 策略版本号 | 字符串 |
| title | False | 策略的标题。 | 字符串 |
| description | False | 策略的描述。 | 字符串 |
| input | False | 标识 API 上下文中的变量。 变量的 body 字段的内容(通过 variable_name.body 表示)是要验证的输入数据。 缺省情况下,变量名称是 message。 |
字符串 |
| output | False | 指定 API 上下文中变量的名称。
|
字符串 |
| validate-against | 是 | 指定要用于验证有效内容的模式。 有效值: |
字符串 |
| xslt-version | False | XSLT 处理器版本。 缺省值为 XSLT10。 | 字符串 |
| strict | False | 是否启用严格 XSLT 错误检查。 非严格操作会试图从某些错误(例如,使用未声明的变量、调用未声明的模板等)中恢复。 缺省情况下,已启用严格 XSLT 错误检查。 | 布尔型 |
| profile | False | 是否启用样式表概要分析。 此选项不应在生产环境中使用。 缺省情况下,已禁用样式表概要分析。 | 布尔型 |
| debug | False | 是否以调试方式运行样式表, XQuery 脚本和 JSONiq 脚本。 当以调试方式运行样式表、XQuery 脚本或 JSONiq 脚本时,它将生成定制 Web 页面,而不是显示其正常输出。 Web 页面详细描述执行期间发生的情况,包括变量的值以及特定部分输出的来源。 此选项不应在生产环境中使用。 默认情况下,调试模式处于禁用状态。 | 布尔型 |
| stream | False | 是否必须以流式方式运行样式表。 文档的转换在完全解析输入之前开始。 并非所有样式表都可以流式传输。 如果样式表无法流式传输,那么将生成错误并且不处理输入。 缺省情况下,已禁用流方式。 | 布尔型 |
| try-stream | False | 是否尝试以流式方式运行样式表。 文档的转换在完全解析输入之前开始。 并非所有样式表都可以流式传输。 如果样式表无法流式传输,那么会在编译期间生成警告,并且在执行时正常读取整个输入中的样式表。 缺省情况下,已禁止尝试在流方式下运行样式表。 | 布尔型 |
| minimum-escaping | False | 是否在处理期间对从样式表生成的输出进行转义。 最小转义在处理非英语字符集时特别有用。 缺省情况下,已禁用最小转义。 | 布尔型 |
| stack-size | False | 允许堆栈在执行样式表或其他已编译内容时使用的最大字节数。 此设置用于阻止无限递归。 最小值为 10 千字节或 10,240 字节。 最大值为 100 兆字节或 104,857,600 字节。 缺省值为 1 兆字节或 1,048,576 字节。 | 整数 |
| wsi-validation | False | 要应用于 WSDL 文件的验证行为,这些文件检查是否符合 WS-I Basic Profile (V 1.0, 2004 年 4 月) 的 5 部分。 缺省设置为 Warn。
|
字符串 |
| wsdl-validate-body | False | soap:Body的验证行为。 缺省设置为 严格。
|
字符串 |
| wsdl-validate-headers | False |
|
字符串 |
| wsdl-validate-faults | False | 指定故障详细信息的验证行为。 缺省设置为 严格。
|
字符串 |
| wsdl-wrapped-faults | False | 是否要求与 RPC 风格的封装函数兼容。 缺省情况下,不需要 RPC 样式的包装程序。 | 布尔型 |
| allow-soap-enc-array | False | 是否允许模式接受
xsi:type='SOAP-ENC:Array' 与 SOAP 1.1 部分 5 一致的元素的大多数使用,即使这些属性违反 XML 模式规范也是如此。 通常, xsi:type 属性必须指定等于或派生自元素的实际类型的类型。 对于使用此选项编译的模式,如果元素类型派生自 SOAP-ENC:Array,那么将专门针对 SOAP 1.1 编码 "数组" 复杂类型接受 xsi:type 。 与之相对的是正常允许的情况。 缺省情况下,不接受具有 xsi:type='SOAP-ENC:Array' 的元素。 |
布尔型 |
| validate-soap-enc-array | False | 是否遵循 SOAP 1.1 部分 5 中的编码规则执行额外的模式验证。 启用此选项后,将验证 SOAP 数组成员,即使模式不允许使用 @id 和 @href 之类的属性,也会检查 @href 值以确保它们具有相应的 @id 元素。 缺省情况下,将不执行额外的验证。 | 布尔型 |
| wildcards-ignore-xsi-type | False | 模式中的 xs:any 元素是否仅按名称验证子元素。 XML 模式规范要求,如果通配符与某个元素匹配,但该元素没有元素声明,那么将根据该元素上的 xsi:type 属性来验证该元素。 此选项将忽略这些 xsi:type 属性。 此选项应在诸如 SOAP 包络验证之类的情况下使用,在此情况下,进一步验证步骤可能会使用 SOAP 1.1 编码规则验证与通配符匹配的内容。 缺省情况下,不会忽略 xsi:type 属性。 |
布尔型 |
| wsdl-strict-soap-version | False | 是否严格遵循 WSDL 中的 SOAP 绑定。 启用此选项后,只有绑定到 SOAP 1.2 的消息才会出现在 SOAP 1.2 包络中,并且只有绑定到 SOAP 1.1 的消息才会出现在 SOAP 1.1 包络中。 缺省情况下,已禁用严格 SOAP 绑定。 | 布尔型 |
| xacml-debug | False | 是否使用调试信息编译 XACML 策略。 请注意,XACML 调试消息也受 XACML 类别中的日志事件控制。 请使用调试日志级别来查看完整的 XACML 调试消息。 缺省情况下,不使用调试信息编译 XACML 策略。 | 布尔型 |
| allow-xop-include | False | 指定模式或 WSDL 文档是否接受其基本 64 位编码的二进制内容已根据 MTOM/XOP 规范进行优化的消息。 XOP 二进制优化将 base64-encoded 二进制数据替换为引用附件中未编码的二进制数据的 xop:Include 引用元素。 缺省情况下,已禁用 MTOM/XOP 优化消息。
|
布尔型 |
您还可以通过使用 API Designer 组合件编辑器向 API 添加内置策略来应用 validate 策略。 如需更多信息,请参阅“内置策略”部分中的 “Validate - DataPower API Gateway ”。
示例 1
- validate:
version: 2.0.0
title: 'validate, response parameter schema'
validate-against: response-param
示例 2
- validate:
version: 2.0.0
title: 'validate, predefined schema'
validate-against: definition
definition: '#/definitions/RouteOutput'
示例 3
- validate:
version: 2.0.0
title: 'validate, JSON and XML schema URLs'
validate-against: url
json-schema: 'https://my.json.schema'
xml-validation-mode: xsd
xml-schema: 'https://my.xml.schema'