AWS Lambda + API Gateway で/hoge/{group}/{user}のように階層構造のREST APIでパスパラメータの受け渡し

AWS系の記事を書くと、サービス名が入るのでどうしてもタイトルが長くなってしまうのがつらい。二時間ドラマでもここまで長くない。

AWS Lambda + API Gateway でREST APIを作るとして、/hoge/{group}/{user}のように、URI階層構造にして、かつ{group}と{user}をパスパラメータとして関数内で処理するようなパターンを考える。ちなみにLambdaはpython3で書いている。

目次

やること

  • /hoge/{group}/{user}のようなAPIを作りたい
    • {group}と{user}は変数
  • {group}と{user}は関数内で変数(パスパラメータ)として利用する
  • AWS Lambda + API Gateway でつくる
    • Lambdaはpython3で書く

パスパラメータとして利用する時は、波括弧を使えば良い。

手順

既にLambdaで関数は作っているものとする。

  1. APIを作成する
  2. リソースを作成する。ここではhogeとする
  3. hogeを選択してアクションよりリソースを作成して子リソースを作成する
    1. リソース名をgroup、リソースパスを{group}とする(波括弧で囲む)
子リソースの作成
  1. CORSの設定は適宜
  2. リソースの作成する
  3. 同様にして、{group}の子リソースとして{user}を作成する
  4. {user}にメソッドを作成してLambda関数と統合

メソッドの作成は適宜といえば適宜。

Lambdaでパスパラメータを利用

Lambdaでパスパラメータを変数として利用する時は、python3ではevent['pathParameters']で取り出す。今回のケースでは、groupとuserが、たとえば以下のように取り出せる。

group  = event['pathParameters']['group']
user = event['pathParameters']['user']

他の言語でも似たような感じだろう。多分。

なお、Lambdaでテストする時は、API Gateway Proxyをテンプレートにして、JSONのpathParametersの項目を書き換えると良い。

以上。

本サイトはUXを悪くするevilなGoogle広告を消しました。応援してくださる方は おすすめガジェット を見ていってください!
よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次