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}とする(波括弧で囲む)

      子リソースの作成
    2. CORSの設定は適宜
    3. リソースの作成する
  4. 同様にして、{group}の子リソースとして{user}を作成する
  5. {user}にメソッドを作成してLambda関数と統合

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

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

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

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

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

以上。

関連コンテンツ

関連記事

スポンサーリンク

カテゴリーaws

コメントを残す

メールアドレスが公開されることはありません。