# APIゲートウェイ互換性モード

API Contracts では、定義を AWS API Gateway および Azure API Management にインポートするための API ゲートウェイ互換性モードが提供されます。

ゲートウェイ互換モードで API をエクスポートする場合、API Contracts が定義を変更して、選択したゲートウェイに正しくインポートできます。

場合によっては変更の必要はないものの、エクスポートした定義で発生するかもしれない互換性の問題を通知するメッセージが表示されることがあります。

## AWS API GatewayのOAS 3.0定義のエクスポート

次の表では、定義のエクスポート時に AWS API Gateway によってサポートされないフィーチャー、および定義をインポートする時に、API Contracts による AWS API Gateway での処理方法について説明します。

| サポートされないOpenAPI機能 | エクスポート時の API Contracts の動作 | インポート時のAWS API Gatewayの動作 |
| --- | --- | --- |
| example属性はサポートされていません。 | 属性は保持されます。 | 属性がスキーマから削除されます。 |
| readOnly属性はサポートされていません。 | 属性は保持されます。 | 属性がスキーマから削除されます。 |
| additionalProperties属性はサポートされていません。 | 属性が保持され、情報メッセージが表示されます。 | 警告メッセージが表示されますが、無視して、定義を正しくインポートできます。 |
| セキュリティ定義の種類:<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定義のエクスポート

次の表では、エクスポートする時に Azure API Management によってサポートされないフィーチャー、および定義をインポートする時に、API Contracts が Azure API Management で発生する事象を処理する方法について説明します。

| サポートされないOpenAPI機能 | エクスポート時の API Contracts の動作 | インポート時のAzure API Managementの動作 |
| --- | --- | --- |
| パスとクエリーの両方で必要なパラメーターは、一意の名前である必要があります。 | エラーメッセージが表示されます。 | インポートが失敗します。 |