У меня есть внутренний API, который предоставляет данные в разных форматах, просто передавая id + format. Например, если я хочу получить PDF-файл продукта с ID = 1, я просто позвоню в приложение с apiurl/latest/1.pdf.
Это отлично работает, когда я нахожусь во внутренней сети, поскольку хост доступен только внутри. Чтобы получить доступ к нему публично, мы реализовали авторизацию с использованием шлюза API и Lambda. Лямбда принимает авторизацию и просто возвращает результат:
Когда я запрашиваю данные XML Вот пример лямбда-выражения:
var request = require ('запрос');
export.handler = function (событие, контекст, обратный вызов) {
var fUrl = event.fUrl + event.pid;
if (event.fsUrl.indexOf('product') >-1){
fUrl = fUrl + '.' + event.format
}
request({
url: fUrl,
}, function(error, response, body) {
if (error){
return callback(error);
}else{
return callback(null, response.body);
}
});
}
но не PDF. Какие-то скрины от почтальона. Я использовал как Отправить, так и Загрузить в Postman.
Есть предположения?
Я был там, но немного. Я могу еще раз взглянуть.
Да, вам нужно дать нам больше кода Lambda, чтобы помочь здесь, я считаю, что это кодировка - проверьте это stackoverflow.com/questions/22171510/… - Помните, что при поиске Lambda - это NodeJS или любая другая среда выполнения, которую вы используете, это ничем не отличается :-)
@MrkFldig Я обновил вопросы с помощью лямбда-фрагмента.
Да, это не даст клиенту правильную загрузку, если у него нет заголовков и правильного формата из ссылки выше.





Помогает ли этот вопрос / ответ? stackoverflow.com/a/45368224/6427978