# API网关兼容模式

API Contracts 提供 API 网关兼容模式，可帮助您将定义导入 AWS API Gateway 和 Azure API Management。

在网关兼容模式下导出 API 时，API 契约可能会修改您的定义，以便将其成功导入所选网关。

在某些情况下，未进行任何修改，但会显示一条消息，告知您导出的定义可能会遇到的兼容性问题。

## 导出适用于 AWS API Gateway 的 OAS 3.0 定义

下表描述了在导出定义时 API Contracts 如何处理 AWS API Gateway 不支持的功能，以及在导入定义时 AWS API Gateway 会发生什么。

| 不支持的 OpenAPI 功能 | API 契约<br>导出时的行为 | 导入时的 AWS API Gateway 行为 |
| --- | --- | --- |
| 不支持 example 属性。 | 该属性会被保留。 | 该属性已从模式中移除。 |
| 不支持 readOnly 属性。 | 该属性会被保留。 | 该属性已从模式中移除。 |
| 不支持 additionalProperties<br>属性。 | 该属性被保留，并显示一条信息消息。 | 会显示一条警告消息，但可以忽略，并且可以成功导入定义。 |
| 安全定义类型：<br><br><ul><li><span>oauth2</span> 不受支持，</li><li><span>http</span> 不受支持，</li><li><span>openIdConnect</span> 不受支持。</li></ul> | 安全方案得到保留，并显示一条提示信息。 | 会显示一条警告消息，但可以忽略，并且可以成功导入定义。 |
| 响应中不支持基本数据类型。 | 基本类型被包装到组件 schema 中，并显示一条警告消息。 | 导入成功。 |
| 不支持媒体类型范围。 | 请求或响应会被保留，并显示提示信息。 | 导入失败并显示警告消息。 |
| 不支持默认响应。 | 响应已保留，并显示一条提示消息。 | 导入失败并显示警告消息。 |
| 不支持范围响应。 | 响应已保留，并显示一条提示消息。 | 导入失败并显示警告消息。 |
| 路径变量、查询参数和标头必须具有唯一的名称。 | 参数将被保留，并显示错误消息。 | 导入失败。 |

## 导出用于 Azure API Management 的 OAS/Swagger 2.0 定义

下表描述了在导出定义时 API Contracts 如何处理 Azure API Management 不支持的功能，以及在导入定义时 Azure API Management 中会发生什么。

| 不支持的 OpenAPI 功能 | API 契约<br>导出时的行为 | 导入时的 Azure API Management 行为 |
| --- | --- | --- |
| 路径和查询中的必需参数名称必须唯一。 | 会显示错误消息。 | 导入失败。 |