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 别名节点。