在AWS API网关中,如果在查询字符串参数中重复添加了同一个参数名,API网关默认只会接收最后一个参数值。如果需要接收重复的参数值,可以通过使用映射模板来解决。
以下是一个示例,展示了如何在API网关中使用映射模板来接收重复的查询字符串参数:
在API网关的集成请求中,找到“Mapping Templates”部分。
添加一个映射模板,用于处理查询字符串参数。例如,可以使用Velocity模板语言来处理查询字符串参数。
#if($input.params().querystring.containsKey("myParam"))
#set($params = $input.params().querystring.getAll("myParam"))
#foreach($param in $params)
"myParam" : "$param"
#end
#end
上面的示例将接收名为“myParam”的重复查询字符串参数,并将其作为一个列表返回。
将映射模板应用到集成请求中的相应位置。例如,可以将其应用到请求正文模板中的JSON结构中。
保存并部署API。
使用以上方法,API网关可以接收重复的查询字符串参数,并将其作为列表或数组返回。在Lambda函数或其他后端服务中,可以根据需要进一步处理这些参数。