SwaggerHubから直接、AWS API GatewayにAPI定義を展開しましょう!
過去数年間で、サーバーレスインフラストラクチャへの緩やかな移行が起こりました。Infrastructure-as-a-Service (IaaS) は、低コスト、アジリティ、スケーラビリティ、信頼性をもたらし、状況を一変させました。サービスの管理と保守に余計な作業が必要なくなった今、SwaggerHubが導入する次の大きな統合がサーバーレスAPIゲートウェイサービスとの統合であるのは当然のことでした。Amazon API Gatewayは、もはや説明不要なサービスの1つです。ユーザーがあらゆる規模でAPIを構築、デプロイ、管理できる、完全に管理されたプラットフォームです。Amazon API Gatewayの重要な点は、RESTful APIの設計と構築にSwagger定義形式をサポートしていることです。ご存じのとおり、SwaggerHubはSwaggerそのものです!
開発者がAPIモックから堅牢なAPIエディターの動的な機能まで、APIを設計するために利用できる最高のツールを使用し、定義とLambda関数間でしばしば複雑な設定を排除しながら、AWS API Gatewayにデプロイできるなら、どれほど楽になるでしょう。ここでSwaggerHubの最新のAmazon Gateway統合が役立ちます。Amazon Gateway統合を使用すると、APIをAmazon Gatewayで迅速かつ自動的に公開して利用できます。SwaggerHubのSwagger定義からAmazon LambdaでAPIコードのビルディングブロックを自動生成することで、サーバーレスデプロイメントも処理されます!
SwaggerHubには、2つのAPI Gateway統合が利用可能です。
- Amazon API Gateway
- Amazon API Gateway Lambda同期
これらの統合は、APIの右上隅にあります。 
Amazon API Gateway
Amazon API Gatewayを使用すると、ユーザーはプロキシモードでAmazon GatewayにAPIを迅速にデプロイできます。これにより、Amazon API Gatewayが認証やレート制限などを処理できます。SwaggerHubは、Gateway定義をAPI定義と同期させます。ユーザーは、必要に応じて統合を設定できます。以下のフィールドはカスタマイズ可能です。
- 名前: SwaggerHubに表示される統合の名前
- AWSリージョン: AWS Gatewayをサポートするリージョン。リストされているすべてのAWSリージョンがGatewayをサポートしているわけではないので、AWSドキュメントを参照してください。
- API ID: 公開するAPIのID。このフィールドを空のままにすると、API定義の
title
と一致するものがAWS Gatewayに存在しない場合、新しいAPIが作成されます。
- 公開モード: 統合が、SwaggerHub上のAPIの変更を、Gateway上にすでに存在するAWS Gateway上のAPIとマージするか、上書きするかを決定します。
- ベースパスモード: API Gatewayは、リソースのパスを表現する方法がいくつかあります。basePathプロパティを解釈するための3つのオプション(
Ignore
、Prepend
、Split
)があります。詳細はこちらで確認できます。
- デプロイモード: ユーザーがAPIをGatewayにプッシュする方法をカスタマイズできます。ユーザーは「保存時にプッシュ」するか、統合を完全に無効にすることができます。保存がクリックされるたびにAPIをGatewayにプッシュしたくない場合があり、その場合にデプロイモードで
never
を選択すると役立ちます。
- プロキシするサーバーのアドレス: これにより、ユーザーはカスタムAPIをAWSサービスに接続できます。
- AWSアクセスキーとシークレットキー: SwaggerHubがAPI Gatewayに接続するために必要なキー。詳細はこちらで確認できます。
設定が完了すると、APIはSwaggerHubからAWS Gatewayにデプロイおよび同期できるようになります!
Amazon API Gateway Lambda同期
AWS Lambdaは、サーバーの管理の手間をかけずに、ユーザーがサービスのバックエンドロジックを構築するのに役立ちます。Amazon API GatewayとLambda関数は、補完的なサービスとしてうまく機能します。API Gatewayは、WebクライアントがLambda関数を動的に呼び出すことを可能にします。Lambda Sync Integrationは、Gatewayで複雑な配線を処理するため、ユーザーはアプリケーションの真のビジネス価値について心配するだけで済みます。Integrationは、ユーザーのニーズに合わせて構成できます。
- 名前: 統合の名前
- AWSリージョン: AWS Gatewayをサポートするリージョン
- API ID: 公開するAPIのID。このフィールドを空のままにすると、Swagger定義の
title
値と一致するものが存在しない場合、AWS Gatewayに新しいAPIが作成されます。
- 公開モード: 統合が、SwaggerHub上のAPIの変更を、Gateway上にすでに存在するAWS Gateway上のAPIとマージするか、上書きするかを決定します。
- ベースパスモード: API Gatewayは、リソースのパスを表現する方法がいくつかあります。basePathプロパティを解釈するための3つのオプション(
Ignore
、Prepend
、Split
)があります。詳細はこちらで確認できます。
- デプロイモード: ユーザーがAPIをGatewayにプッシュする方法をカスタマイズできます。ユーザーは「保存時にプッシュ」するか、統合を完全に無効にすることができます。保存がクリックされるたびにAPIをGatewayにプッシュしたくない場合があり、その場合にデプロイモードで
never
を選択すると役立ちます。
- 存在しないLambda関数を作成するための実行ロール: SwaggerHubがLambda関数を作成する方法を決定します。
- AWSアクセスキーとシークレットキー: SwaggerHubがAPI Gatewayに接続するために必要なキー。詳細はこちらで確認できます。
設定が完了すると、APIデザインはAmazon Lambda関数にデプロイおよび同期できるようになります。Lambda関数は、各オペレーションのoperationIdによって作成され、一致します。operationIdがない場合(OpenAPI Specificationではオプションです)、自動的に作成されます。operationIdと同じ名前のLambda関数が既に存在する場合、その関数が使用され、新しい関数は作成されません。
追加情報
プロキシモードとラムダモードの両方で、SwaggerHubは、Amazon固有の拡張機能がまだ存在しない場合、すべてのオペレーションのSwagger定義に追加します。これらはAPI Gatewayの構成方法を決定します。SwaggerHubは、拡張機能がすでに存在することを確認した場合、それらを変更しません。したがって、定義を変更し、AWS Gatewayへのマッピングを更新する必要がある場合は、保存する前に拡張機能を削除する必要があります。Amazon API Gatewayは、Swagger定義のすべての機能をサポートしているわけではありません。SwaggerHubは、保存時に定義からサポートされていない機能を無効にしようとします。それらは定義でそのようにマークされます。Amazon API Gatewayの機能は常に改善されているため、制限のリストについてはAmazonのドキュメントを参照してください。これら2つの統合は、AWS API Gatewayを使用して、APIを設計からデプロイメントまで可能な限り効率的な方法で進めるための強力なツールです。
SwaggerHubで今すぐお試しください!新しい統合に関する提案がある場合や、製品をSwaggerHubと統合したい場合は、こちらから機能リクエストをお寄せください。