Использование шлюза API Amazon Я могу создать конечную точку, которая вызовет функцию лямбда, которая выводит обычный текст. Однако, когда я делаю запрос на конечную точку, вывод возвращается с типом содержимого по умолчанию "application/json". Это выводит обычный текстовый ответ, заключенный в кавычки. Я хотел бы изменить заголовок ответа на "text/plain", чтобы он просто выводил текст, развернутый кавычками. Кто-нибудь знает, как это сделать?
Вывод текстового содержимого из конечной точки шлюза API Amazon
Ответ 1
Итак, мне удалось заставить эту работу работать.
В ответе на интеграцию вам нужно добавить новый шаблон сопоставления типа "text/plain"
В поле введите тип шаблона:
$input.path('$')
Или путь к значению, которое вы хотите вернуть, и сохраните новый шаблон сопоставления (не выбирайте модель!)
Затем вам необходимо повторно развернуть свой API, чтобы изменения вступили в силу.
Одна вещь, которую я имел на месте, - это также метод Method Response, установленный как "text/plain", используя пустую модель. Я не уверен, что это имеет эффект, но если выше не работает, просто добавьте это.
Ответ 2
Anthony way все еще оставлял кавычки в выходной строке. Поэтому, чтобы ответить на ответ интеграции, создайте новый шаблон сопоставления для типа text/plain
. Он должен иметь значение:
$input.path('$')
Теперь, если вы запустите context.succeed("somestring")
, вывод будет "somestring"
, завернутый в кавычки. Это связано с тем, что оно сжато как термин json. Как неприятное обходное решение, вы можете сделать что-то вроде:
var base = JSON.stringify;
JSON.stringify = function(given) {
JSON.stringify = base;
return given;
}
context.succeed("somestring");
В качестве дополнительной заметки вы можете получить больше подсказок, прочитав console.log(context.succeed)
.