【API Gateway】API Gatewayとは


API Gatewayとは

APIの作成・管理をするためのフルマネージド型サービス

  • 最大数十万個のAPI同時呼び出し・受付が可能
  • Lambdaと組み合わせることで完全にサーバーレスなAPIを実現可能
  • WebSocketを利用したリアルタイム且つ双方向の通信のAPI処理が可能

APIの作成

  • API Gatewayで作成するAPIは、1つ以上のリソースを持ち、各リソースが1つ以上のメソッドを持つ
  • RESTfulなAPIのメソッド・エンドポイントの例 GET https://api.example.com/dev/pet/1
    GET:メソッド、api.example.com:API、dev:ステージ、pet/1:リソース

メソッドの設定

各メソッドではアップストリームを選択し、APIクライアントとAPI Gateway間のやりとり、API Gatewayとアップストリーム間のやりとりを適切に行えるよう、リクエスト・レスポンスの変換設定を行う

メソッド 設定内容
メソッドリクエスト API Gatewayの受付設定を行う(リクエストに認証が必要か、どのようなクエリパラメータを受け付けるか等)
統合リクエスト API Gatewayとアップストリーム間の統合設定を行う(アップストリームの指定、リクエストボディの変換等)
統合レスポンス アップストリームとAPI Gateway間の統合設定を行う(ステータスコードのマッピング、レスポンス内容の変換等)
メソッドレスポンス API Gatewayからクライアントへのレスポンス設定を行う(ステータスコードごとのレスポンスヘッダーや、レスポンスボディの設定等)

クライアントとアップストリーム間のやりとりの流れ
リクエスト:クライアント → [メソッドリクエスト] → API Gateway → [統合リクエスト] → アップストリーム
レスポンス:アップストリーム → [統合レスポンス] → API Gateway → [メソッドレスポンス] → クライアント

APIの公開

作成したAPIを利用可能な状態にするためには、APIの公開作業であるデプロイを行う

  • デプロイ先として複数のステージを持ち、各ステージに異なるバージョンのAPIの公開が可能
  • デプロイしたAPIのベースURL(デフォルト):
    https://{api-id}.execute-api.{region}.amazonaws.com/{stage}
  • 利用者の所有するドメインをカスタムドメイン名として設定することも可能

APIドキュメント

公開したAPIを利用者が活用しやすいよう、利用方法等の説明を記載・公開するもの

  • API Gatewayには、APIに関するドキュメントを作成する機能が用意されている
  • 作成したAPIのリソース・メソッド・リクエスト・レスポンスなどに各要素に説明を付けるだけで、APIドキュメントの標準形式に則ったAPIドキュメント定義ファイル(Swagger(OpenAPI))をエクスポートすることが出来る
  • Swagger形式のAPIドキュメント定義ファイルをAPI Gatewayにインポートし、APIの作成をすることも可能