更新:先週の時点で、APIゲートウェイは、今、彼らは「キャッチオールパス変数」と呼ぶものをサポートしています。 API Gateway Update – New Features Simplify API Developmentを参照してください。
残念なことに、各レベルのリソースを作成する必要があります。この理由は、API Gatewayを使用して、オブジェクトを介してそれらのパラメータにアクセスできるようにするためです。例えば
:method.request.path.XXXX
をので、あなただけのあなたがそれにアクセスすることができなかった場合:method.request.path.param
いますが、ネストされたパス(スラッシュ付きのparams)を持っていた場合、それは動作しません。あなたはまた、全体の要求に対して404を得るでしょう。
method.request.path.param
が代わりに配列だった場合は、名前が付けられていないと位置によってパラメータを取得できます。たとえば、method.request.path.param[]
...名前付きパラメータはそこでも処理できますが、アクセスは簡単ではありません。何らかのJSONパスマッピングを使用する必要があります(マッピングテンプレートを使ってできるように考える)。悲しいことに、これはAPIゲートウェイでどのように処理されるかではありません。
これはAPIゲートウェイの設定をさらに複雑にする可能性があるため、問題ありません。しかし、APIゲートウェイも制限されています。このような状況に対処するためには、最終的にはもっと混乱した設定になります。
だから、ここには長い道のりがあります。複数のリソースに対して同じメソッドを作成し、/{1}/{2}/{3}/{4}/{5}/{6}/{7}
などのようにします。必要に応じて、各パスパラメータレベルを処理できます。
パラメータの数が常に同じ場合は、少し幸運なことですが、多くのリソースを設定する必要がありますが、最後には1つの方法しかありません。
ソース:https://forums.aws.amazon.com/thread.jspa?messageID=689700򨘤
出典
2016-03-25 22:27:06
Tom
2018年には、@ geekQの回答(https://stackoverflow.com/a/40608247/347777)をご覧ください。真のキャッチオール(/ a/b/c/d/...と一致する)が可能になりました。 – Viccari