# 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> | 安全性配置會予以保留，並顯示資訊訊息。 | 會顯示警告訊息，但可以忽略，且定義可以成功匯入。 |
| 不支援回應中的基本資料類型。 | 基本型別會包裝成元件結構描述，並顯示警告訊息。 | 匯入成功。 |
| 不支援媒體類型範圍。 | 請求或回應會被保留，並顯示資訊訊息。 | 匯入失敗，並顯示警告訊息。 |
| 不支援預設回應。 | 回應會予以保留，並顯示資訊訊息。 | 匯入失敗，並顯示警告訊息。 |
| 不支援範圍回應。 | 回應會予以保留，並顯示資訊訊息。 | 匯入失敗，並顯示警告訊息。 |
| 路徑變數、查詢參數和標頭必須具有唯一名稱。 | 參數會保留，並顯示錯誤訊息。 | 匯入失敗。 |

## 匯出適用於 Azure API Management 的 OAS/Swagger 2.0 定義

下表說明匯出定義時，API Contracts 如何處理 Azure API Management 不支援的功能，以及當您匯入定義時，Azure API Management 會發生什麼情況。

| 不支援的 OpenAPI 功能，特性 | API 合約<br>匯出時的行為 | Azure API Management 匯入時的行為 |
| --- | --- | --- |
| 跨路徑與查詢的必要參數必須具有唯一的名稱。 | 會顯示錯誤訊息。 | 匯入失敗。 |