0
0

More than 3 years have passed since last update.

[AWS] Lambda + API Gateway でサーバーレスWeb APIを作る ②Amazon API Gateway HTTP API篇

Posted at

この記事は

[AWS] Lambda + API Gateway でサーバーレスWeb APIを作る ①Lambdaファンクション篇の続きです。

HTTP APIとREST API

Amazon API GatewayではHTTP APIとREST APIという2種類のAPIを作成できます。
違いは公式を見てみてください。
HTTP API と REST API 間で選択する

  • HTTP APIの方が安価
  • REST APIの方が現状では機能が多い
  • OIDC/OAuth 2.0認証をサポートしているのはHTTP APIだけ

今回のゴールはどちらの方法でも達成できそうです。今回はHTTP APIで実装してみます。

今回の実装

今回は、API GatewayのHTTP APIを使って前回作成したLambdaファンクションintroduceMyselfへのHTTP経由での入口を作成します。

HTTP APIを作成

Amazon API Gatewayの画面でCreate APIを押す。
Create API

HTTP APIのBuildを押します。
Build

  • Add integrationボタンで統合先にLambdaを指定、呼び出したいRegionLambda Functionを選択します。(複数追加可能)
  • API名を決めます。
  • Nextボタンを押します。

Configure integrations

Add routeでルートを追加します。メソッド、リソースパス、統合ターゲット(呼び出すファンクション)を指定します。
今回はintroduceMyselfにGETとPOSTメソッドのルートを作成します。
入力したらNextを押します。

Configure routes

次にデプロイするステージを決めます。
本番環境はprod、開発環境はdevといったようにデプロイする環境を分けることができます。
今回はdevという名前のステージを追加してデプロイします。
Auto-deployをオンにしておくとAPIの修正後に手動でデプロイボタンを押さなくてもデプロイされます。

Define stages

内容を確認してCreateボタンを押します。

Create

APIを呼び出してみる

REST APIではコンソール内でAPIのテストが実行できますが、HTTP APIではできないようなのでGETとPOSTでそれぞれAPIを呼び出してみようと思います。

GET

https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/development/introduce/myself?name=Akumachan&age=10031

GET TEST

POST

curl -X POST -H "Content-type: application/json" -d '{"name": "Akumachan", "age": "10033"}' https://xxxxxxxxxx.execute-api.us-west-2.amazonaws.com/development/introduce/myself

Screen Shot 2021-03-11 at 23.37.57.png

呼べました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0