我已经在AWS API Gateway服务中创建了一个模拟API。
在我的GET资源中,我有一个查询字符串参数Id,我希望将其从请求传递到响应中,这样,调用调用时输入的所有ID都会与API响应中的虚拟数据一起返回
在“方法请求”中,我已将URL查询字符串参数定义为“ Id”。
在我的集成请求的映射模板中,我已将此输入参数映射到一个具有相同名称的元素。...
{"Id" : "$input.params('Id')"}
但是,我不了解如何在我的Integration Response映射模板中引用它。我尝试引用“ Id”或“ Id”,但是每次这仅返回“ Id”或“ Id”的文本,而不是Id的值。
我的响应映射模板如下所示。...
[
{
"Data":{
"ItemId":'Id',
"name": "Bread",
"Quantity": 1000
"Price": 1.50
}
}
]
我想在调用API调用时使用输入的“ Id”值填充“ ItemId”。
我浏览了很多文档,但是看不到如何实现。
请帮助我……
答案 0 :(得分:0)
您是否也尝试在响应中使用它:
[
{
"Data":{
"ItemId": "$input.params('Id')",
"name": "Bread",
"Quantity": 1000,
"Price": 1.50
}
}
]
1000后缺少逗号。
您也可以像这样使用它来获取所有查询字符串参数:
{
#foreach($param in $input.params().querystring.keySet())
""$param"": ""$input.params().querystring.get($param)"" #if($foreach.hasNext),#end
#end
}
映射模板使用Apache Velocity模板语言(VTL)。 http://velocity.apache.org/engine/1.7/vtl-reference.html
从VTL网站文档中:
速度提供了一种获取循环计数器的简便方法,因此您可以执行以下操作:
#foreach( $customer in $customerList )
<tr><td>$foreach.count</td><td>$customer.Name</td></tr>
#end