Переслать тело из ответа в точности так, как он приходит

1

Я использую сторонний интерфейс 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 }));

Мне нужно отправить точно такое же тело, которое я получаю в ответ. Как я могу это сделать?

Спасибо

Теги:
http

1 ответ

0

Хорошо, мне удалось заставить это работать, поэтому я опубликую здесь, если это поможет кому-то.

Этот поток дал мне решение Получение двоичного содержимого в 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 }));

С этим мне удалось добиться этого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню