#amazon-web-services #aws-lambda #aws-api-gateway
Вопрос:
Я пытаюсь отправить двоичный файл и строковые параметры в AWS API Gateway.
это шаблон сопоставления, который находится в сообщении API Gateway:
{ "imageFile" : $input.params('imageFile'), "purdueUsername" : $input.params('purdueUsername'), "description" : $input.params('description'), "price" : $input.params('price'), "longitude" : $input.params('longitude'), "latitude" : $input.params('latitude'), "category" : $input.params('category'), }
Выполнение запроса на публикацию приводит к этому:
Когда я попробую это
{ "imageFile" : "$input.params('imageFile')", "purdueUsername" : "$input.params('purdueUsername')", "description" : "$input.params('description')", "price" : "$input.params('price')", "longitude" : "$input.params('longitude')", "latitude" : "$input.params('latitude')", "category" : "$input.params('category')", }
Я получаю пустые параметры. API не получает параметры, которые я отправляю через POST-запрос.
Как я должен изменить шаблон сопоставления? Примечание: Когда я пытаюсь использовать файл изображения только в шаблоне сопоставления и отправляю только двоичный файл без дополнительных параметров, он работает совершенно нормально.
{ "imageFile" : "$input.body" }
Однако я хочу иметь возможность отправлять другие параметры помимо двоичного файла.
Ответ №1:
вот как я решил эту проблему. Я отправляю двоичный файл в теле запроса POST и другие параметры в качестве заголовка.
это шаблон отображения, который я разместил на шлюзе API AWS
{ "purdueUsername" : "$input.params('purdueUsername')", "description" : "$input.params('description')", "price" : "$input.params('price')", "longitude" : "$input.params('longitude')", "latitude" : "$input.params('latitude')", "category" : "$input.params('category')", "isbnNumber" : "$input.params('isbnNumber')", "imageFile" : "$input.body" }