OpenAPI 2.0 功能限制
以下部分介绍了 API 网关上 OpenAPI 2.0 功能的限制。
范围被忽略
虽然 API Gateway 接受已在安全方案对象内定义了范围的 OpenAPI 文档,但不会检查或强制执行这些范围。
多个安全性要求
- API 密钥要求:如果其中一个方案是 API 密钥,API 网关不支持替代(逻辑 OR)安全性要求。不过,ESP 支持合取(逻辑 AND),因此您可以同时要求 API 密钥和 OAuth2 令牌。
- OAuth2 要求:支持针对不同 OAuth2 安全方案的替代(逻辑 OR)安全性要求。
- 不支持针对不同 OAuth2 安全方案的合取(逻辑 AND)安全性要求。
- 可选安全性:空安全要求 (
- {}) 可用于使 API 密钥的安全性成为可选,但 OAuth 不支持此功能。
安全定义验证
如果 OpenAPI 3.x 规范使用的安全要求在 securityDefinitions 部分中没有对应的定义,API Gateway 将拒绝该规范。
网址路径模板
API Gateway 仅支持表示整个路径段的网址路径模板参数(例如,/items/{itemId})。与部分路径段(例如 /items/prefix_{id}_suffix)对应的参数不受支持,系统会拒绝此类参数。
参数、架构和类型
API Gateway 接受具有各种参数和类型定义(例如,required 参数、数组格式),但不会强制执行。无论这些定义如何,传入请求都会转发到您的 API。
外部类型引用
API 网关不支持对所提供的 OpenAPI 文档外部的类型的引用。例如,指向外部网址的 $ref 不允许使用,系统会拒绝此类网址。
主机地址中的自定义端口
API Gateway 不允许在 OpenAPI 文档的 host 字段中使用自定义端口。
YAML 别名限制
提交给 API Gateway 的 OpenAPI 文档最多可以包含 200 个 YAML 别名节点。