json - 处理来自 aws apigateway 的嵌套集成响应
问题描述
我有来自AWS Lambda的JSON响应到AWS API-GATEWAY,如下所示:-
[
{
"key1" : "fruit",
"key2" : "citrus",
"key3" : {
"key31" : "lemon",
"key32" : "orange",
"key33" : "lime"
}
},
{
"key1" : "vegetable",
"key2" : "green",
"key3" : {
"key31" : "spinach",
"key32" : "lettuce",
"key33" : "cabbage"
}
}
]
在从 API Gateway 发送到客户端应用程序之前,我想修改响应中的密钥,如下所示:
[
{
"category" : "fruit",
"subCategory" : "citrus",
"examples" : {
"eg1" : "lemon",
"eg2" : "orange",
"eg3" : "lime"
}
},
{
"category" : "vegetable",
"subCategory" : "green",
"examples" : {
"eg1" : "spinach",
"eg2" : "lettuce",
"eg33" : "cabbage"
}
}
]
在AWS ApiGateway 中,我们有映射模板来转换来自 Lambda 的响应并使用Apache Velocity离开 API Gateway 。我正在使用application/json格式来创建映射模板。
下面是我为转换编写的代码——
#set($inputRoot = $input.path('$'))
[
#foreach($elem in $inputRoot)
{
"category": "$elem.key1",
"subCategory": "$elem.key2",
"examples" : #set($example in $elem.key3)
{
"eg1" : "$example.key31",
"eg2" : "$example.key32",
"eg3" : "$example.key33"
}#end
}#if($foreach.hasNext),#end
#end
]
我在点击它后从 api 网关收到的响应如下 ---
{
"message": "Internal server error"
}
我还是 API 网关的新手,所以如果有人能提供帮助,那就太好了。
解决方案
推荐阅读
- time-series - 使用 Kibanan Timelion 绘制原始时间序列
- prolog - 在 Prolog 中将列表的每个实例替换为另一个 ONE
- php - 为什么从 url 获取时 curl 超时?
- javascript - 将 JavaScript 对象数据传递到 Bootstrap 模式
- python - 迭代时间序列数据的间隔
- jenkins - 通过 Jenkins API 写入 key/value 数据
- ios - 如果 Firebase 值为 nil,我如何定义辅助值
- javascript - 为什么 Google Webfontloader 不起作用?
- javascript - 按键将对象分组为二维数组
- php - 表单提交未填充 $_POST 数组