Как правильно сделать HTTP-proxy?

Делаю HTTP-proxy, который должен принимать запросы от клиента, немного изменять их, передавать некоторому REST API и возвращать полученный от него response клиенту, ничего в нем не изменяя. Правильно ли я это делаю?
Если REST API возвращает респонс с gzip-контент-энкодингом, можно ли переслать контент клиенту не декодируя его?

import fetch, { Response as FetchResponse } from 'node-fetch'
...
const pipeline = util.promisify(stream.pipeline)

async function pipeResponse(from: FetchResponse, to: ExpressResponse) {
  const contentType = from.headers.get('Content-Type')
  if (contentType) {
    to.type(contentType)
  }
  return Promise.all([pipeline(from.body, to), pipeline(from.body, log_file)])
}
app.get( '/api_endpoint',  (req, res, next) => {
   const url = ''//make request url, add some params

    fetch(url).then(resp => pipeResponse(resp, res)).catch(next)
  })
)
  • Вопрос задан
  • 20 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
жизнь прекрасна в Амстердаме, а в Воронеже gаvно
в gzip вы не измените, не распаковывая

если только заголовками поиграться
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
IQ Oрtiоn Software Санкт-Петербург
от 140 000 до 170 000 руб.
До 80 000 руб.
Взахлёб Ульяновск
от 90 000 до 120 000 руб.
23 авг. 2019, в 17:54
70000 руб./за проект
05 сент. 2019, в 14:46
25000 руб./за проект
17 сент. 2019, в 12:51
400 руб./в час