2015-09-10 14 views
7

リソースの統合要求内のマッピングテンプレートを使用して、オプションのクエリ文字列パラメータを作成する方法を理解できないようです。AWS API Gateway:マッピングテンプレートでクエリ文字列パラメータをオプションにするにはどうすればよいですか?

私のテンプレートは次のようになります。

{ "limit": "$input.params('limit')", "post_date":"$input.params('post_date')" } 

私はオプションであることを 'リミット' & 'post_date' をしたいと思います。

/myresource?limit=undefined& 

私は期待してい::

/myresource 

Docsがこれをカバーしていないように見えます。このテンプレートは、これらのパラメータが用意されていない場合、次のようになりますクエリ文字列を作成します。条件付きの機能を提供するためにbashのような構文を使用するドキュメントのサンプルテンプレートがいくつか見つかりました。私は、次のテストを試してみたが、それはAWSコンソールに検証しません。

 #set($limit = $input.path('limit')) 
     { 
      #if($limit)"limit": "$input.params('limit')",#end 
     } 

私は正しい軌道に乗っていますか?

ありがとうございます!

+2

私はあなたが可能なすべてのパラメータを定義して、バックエンドで 'undefined'を扱うべきだと思います。 – kixorz

+0

'Lambda'をバックエンドとして使用していますか? – kixorz

+0

@napalmそれは私が現在やっていることです。本当にAWS ?!ださいよ。ラムダ→はい – Nick

答えて

3

はい、あなたは絶対にApi Gatewayでこれを行うことができます。それは十分に文書化されていないようです!

あなたの質問では、これはパラメータであることに言及しました。 input.pathを使用しました。これは通常、POST要求の本体の要素を参照します。次のように動作するはずです:

#set($limit = $input.params('limit')) 
{ 
#if($limit && $limit.length() != 0) 
"limit": "$input.params('limit')" 
#end 
} 

ドキュメントの点では、AWSの次のページは実際にはかなり役に立ちます。それはしかし、モックエンドポイントに関するセクションに隠れています:

http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-mock-integration.html

関連する問題