处理来自AWS apigateway的嵌套集成响应

时间:2020-03-08 00:06:20

标签: json amazon-web-services aws-api-gateway apache-velocity

我收到来自 AWS Lambda JSON 响应,如下所示: AWS API-网关:-

[
   {
       "key1" : "fruit",
       "key2" : "citrus",
       "key3" : {
                  "key31" : "lemon",
                  "key32" : "orange",
                  "key33" : "lime"
                }
   },

   {
       "key1" : "vegetable",
       "key2" : "green",
       "key3" : {
                  "key31" : "spinach",
                  "key32" : "lettuce",
                  "key33" : "cabbage"
                }
   }

]

在从API网关发送到客户端应用程序之前,我想按如下所示修改响应中的键:

[
   {
       "category" : "fruit",
       "subCategory" : "citrus",
       "examples" : {
                  "eg1" : "lemon",
                  "eg2" : "orange",
                  "eg3" : "lime"
                }
   },

   {
       "category" : "vegetable",
       "subCategory" : "green",
       "examples" : {
                  "eg1" : "spinach",
                  "eg2" : "lettuce",
                  "eg33" : "cabbage"
                }
   }

]

AWS ApiGateway 中,我们具有映射模板,可使用 Apache Velocity 转换来自Lambda并从API网关发出的响应。 我正在使用 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网关还是陌生的,因此,如果有人可以提供帮助,那将非常好。

0 个答案:

没有答案