Я использую сторонний интерфейс API Rest, который возвращает содержимое файла в теле. Этот файл может быть текстовым или двоичным (pdf, docx).
По соображениям безопасности мне нужно использовать промежуточный интерфейс API в качестве моста между моим внешним приложением и сторонним API-интерфейсом.
Я хочу, чтобы иметь возможность вернуть то же самое тело, которое я получаю от третьей стороны к моему интерфейсу, потому что на данный момент, когда я получаю тело и создаю новый ответ в своем промежуточном API, я каким-то образом модифицирую что-то.
Это то, что я делаю в своем промежуточном API:
const options = {
method: 'GET',
uri: '${api}',
headers: { OTCSTICKET: ticket}
}
rp(options)
.then(parsedBody => res.status(201).send(parsedBody))
.catch(err => res.status(400).send({ msg: 'download error', err }));
Мне нужно отправить точно такое же тело, которое я получаю в ответ. Как я могу это сделать?
Спасибо
Хорошо, мне удалось заставить это работать, поэтому я опубликую здесь, если это поможет кому-то.
Этот поток дал мне решение Получение двоичного содержимого в Node.js с использованием запроса
Поэтому я просто установил кодировку в null, и я передал ее телу, который я получил от стороннего API
const options = {
method: 'GET',
uri: '${api}',
headers: { OTCSTICKET: ticket},
encoding: null,
resolveWithFullResponse: true
}
rp(options)
.then(response => res.status(201).send(response.body))
.catch(err => res.status(400).send({ msg: 'download error', err }));
С этим мне удалось добиться этого.