У меня есть JSON ответ от AWS Лямбда на 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 у нас есть Mapping Templates для преобразования ответа, поступающего от Lambda и выходящего из API Gateway, с использованием Apache Velocity . Я использую 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, так что если кто-то может помочь, это было бы действительно здорово ,