Обработка вложенного ответа интеграции от aws apigateway - PullRequest
0 голосов
/ 08 марта 2020

У меня есть 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, так что если кто-то может помочь, это было бы действительно здорово ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...