はじめに
以下の調査をもとに、REST APIを構築する
- https://www.s3lab.co.jp/blog/iaas/amazon/2053/
- https://www.s3lab.co.jp/blog/misc/2034/
- https://www.s3lab.co.jp/blog/iaas/amazon/2021/
API Gatewayの種類
API Gateway type
- HTTP API
- HTTP API は低価格で提供できるように最小限の機能で設計されています。
- WebSocket API
- ウェブブラウザとサーバー間でセッションを確立し、双方向通信を可能とします。
- REST API
- API キー、クライアントごとのスロットリング、リクエストの検証、AWS WAF の統合、プライベート API エンドポイントなどの機能が必要な場合は、REST API を選択します。
- REST API Private
- VPC内のみでアクセス可能なREST APIを生成します。
API Endpoint type
- Regional
- 現在のAWSリージョン内にデプロイされます
- Edge-optimized
- 最も近いCloudFront POPにリクエストをルーティングします
- Private
- VPC内からのみアクセスできます
開発
APIの作成
- API名:自由記入
リソースの作成
- リソース名:自由記入
- CORS:チェックするとOPTIONSメソッドをデフォルト値で作成する
メソッドの作成
- メソッドタイプ:POST, GET, … から選択
- Integration タイプ:Lambda, … から選択
- Lambdaの場合
- Lambda Functionの指定
- Lambdaの場合
- Method requestの設定
- API key requiredをTrueに設定
- API keyによりセキュリティを高める
- API key requiredをTrueに設定
- Integration requestの設定
- Lambda proxy integrationをTrueに設定
- Lambda関数の引数のeventにpath, httpMethod, bodyなどが入り、bodyにデータ本体が入る
- Lambda proxy integrationをTrueに設定
Lambdaの開発
デプロイAPIの実行
- ステージの作成:自由記入。例)dev
- invoke URL: https://xxx.execute-api.ap-northeast-1.amazonaws.com/dev
呼び出し
curl -X POST https://xxx.execute-api.ap-northeast-1.amazonaws.com/dev/meetings \
-H "Content-Type: application/json" \
-d '{"order_id":1,"meeting_type":"google","state":"init","schedule":"2024-08-16T00:00:00.000Z","created_at":"2024-08-16T00:00:00.000Z","updated_at":"2024-08-16T00:00:00.000Z","link":"aaa"}'