6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

基本的なREST-APIをAWSのAPI GatewayとLambdaとDynamoDBで作るための参考サイトまとめ

Posted at

ゼロからAWSでREST-APIを一気通貫で実装してみましたが、それなりの苦労があったため、次はもっと効率よく作りたいので、参考サイトをまとめておきたいと思います。

やってみたこと

超シンプルなREST-APIを作ってみました。シンプルですがいろいろ知る必要がありました。

  • 一覧は、GETでパスパラメータがあり、パーテーションキーだけ渡す、レスポンスはJSONでBODYが配列
  • 追加は、POSTでパスパラメータがあり、パーテーションキーだけ渡す、リクエスト本文はJSON、レスポンスもJSONでBODYが1件、ソートキーが採番される
  • 更新は、PATCHでパスパラメータがある、パーテーションキー、ソートキーを渡す、リクエスト本文はJSON、レスポンスもJSONでBODYが1件
  • 検索は、GETでパスパラメータがある、パーテーションキー、ソートキーを渡す、リクエスト本文はなし、レスポンスはJSONでBODYが1件
  • 削除は、DELETEでパスパラメータがある、パーテーションキー、ソートキーを渡す、リクエスト本文はなし、レスポンスはJSONでBODYが0件

参考サイトまとめ

知る必要があった情報を使う順番に書いておきたいと思います。API GatewayとLambdaとの繋がりを確認することと、REST-APIを作るためにLambdaを使ってDynamoDBで必要な処理を実装すること、をそれぞれ行うこととなります。

API GatewayとLambdaとの繋がりを確認する

  • APIGatewayとLambdaを使う場合、まずプロキシ統合が気になりますので確認しました
  • APIGatewayとLambdaでの値の受け渡し方を理解するために、プロキシ統合を使わず、マッピングテンプレートを活用する方法を確認しました

REST-APIを作るためにLambdaを使ってDynamoDBで必要な処理を実装する

  • REST-APIを作るために、リソースとかメソッドの設定のあるべき姿を確認しました
  • APIGatewayだけをとにかく動かして、REST-APIはどういうものかを実装したかったので、Mockを活用しました
  • 実際にコードを書いていくために、PythonとAPIGatewayとLambdaとDynamoDBを一気通貫で動かすために必要な処理を確認しました
  • ソートキーは自動採番したいのでDynamoDBのアトミックカウンターを利用する方法を理解しました
  • Lambdaにて、リクエスト本文の値をそのまま利用する作りにしたため、最後に、パスパラメータとリクエスト本文をマッピングテンプレートで合体してリクエスト本文にする方法を確認しました

まとめ

これくらい参考にすれば、基本的なREST-APIをAWSのAPI GatewayとLambdaとDynamoDBで一気通貫で作れました。参考サイトを一気に読んで、だいたいの作りをイメージしたものを、まとめてコードにできるようになれれば効率が良さそうです。

以上

6
4
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
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?