[AWS]API GatewayでAPIにリソースを挿入する


AWSを活用したサーバーレスアプリケーションを勉強中に困ったことを書いていきます。

こんな人向け

APIGatewayに沢山リソースとメソッド作成した!

と、思ったら頭の方に階層が足りないことが発覚(´・ω・`)

やりたいこと

Before

/
  POST
    /resource_1
      GET
    /resource_2
      POST
                     その他もろもろ...

After

/
  /{param1}    // 追加
    POST
      /level_11
        GET
      /level_12
        POST
                     その他もろもろ...

できそうな方法を考えてみる

  • コンテキストメニューで挿入的なメニューがあるんじゃないか?

    → ありません\(^o^)/

  • 作れる場所に作ってから、ドラッグ&ドロップすれば...!

    → できません\(^o^)/

ということで、
AWS Loft Tokyo のAsk An Exportというサービスを利用させていただきました。

AWSのアカウントを持っていれば、無料で利用できるコ・ワーキングスペース、Ask An ExportでAWSの質問が可能です。

本当はもっと高度な相談をするためのものなんだろうな...と引け目も感じつつ、
聞くは一時の恥、聞かぬは一生の恥と勇気を出して質問してみましょう。

Q. 上記のようなことをする方法がありますか?

A. あー、、、簡単にはできませんねぇ。

ということで、代替の方法を教えていただきました。

  1. APIをSwaggerでエクスポートします。
  2. Swaggerを編集します。
  3. 編集したSwaggerをインポートします。

ふむ、確かに。。。

ということでとりあえず出来たのですが、実はこの後に 落とし穴 があります。
各メソッドからLambdaを呼び出す設定が消えるので設定し直しです\(^o^)/

所感

API設計をちゃんとやってから作りましょう!と言ってしまえばおしまいですが、
APIにリソースを追加したり、整理したりすると、こういうこともよくあると思いますので、
挿入する階層まで全部作り直し!よりはマシな方法として覚えておきたいです。