Настройка функции облачного прокси-сервера Angular CLI HTTP

Можно ли с помощью Angular CLI и https://github.com/chimurai/http-proxy-middleware перехватывать / прокси-вызовы на внешний URL-адрес, такой как безоблачная функция облака, такая как функции Azure или функции Firebase?

Например, нацеливание на внешний URL-адрес облачной функции, такой как https://foobar.azurewebsites.net/api/SampleHttpFunction?code=123ABC456XYZ== как бы вы настроили proxy.conf.json перехватить этот URL/ путь?

Следующие конфигурации успешно перехватили HTTP-запрос (target настроен на локально работающую облачную функцию localhost port для целей разработки). Угловое приложение запускается с помощью команды "ng serve --proxy-config proxy.conf.json --open",

{
  "/api": {
    "target": "http://localhost:1234",
    "secure": false
  }
}

{
  "foobar.azurewebsites.net/api": {
    "target": "http://localhost:1234",
    "secure": false
  }
}

{
  "**/api": {
    "target": "http://localhost:1234",
    "secure": false
  }
}

HttpClient звонки в https://foobar.azurewebsites.net/api/SampleHttpFunction?code=123ABC456XYZ== с любой из этих конфигураций по-прежнему переходит на URL-адрес производственной облачной функции, а не http://localhost:1234/api,

Обновление: в соответствии с предложением я попытался использовать конфигурацию с несколькими записями и запустить приложение с ng serve --proxy-config proxy.conf.js --open, но все равно не ловит HTTP-вызов:

const PROXY_CONFIG = [{
  context: [
    "/api",
    "**/api",
    "**/api/*",
    "https://foobar.azurewebsites.net/api/",
    "foobar.azurewebsites.net/api/",
    "foobar.azurewebsites.net/api/*",
    "*foobar.azurewebsites.net/api"
  ],
  target: "http://localhost:1234",
  secure: false
}]

module.exports = PROXY_CONFIG;

Спасибо за любую помощь, которую вы можете предоставить!

1 ответ

У меня была такая проблема с моим приложением, когда перехват только перехватывает первую конфигурацию прокси. Я должен был использовать JS вместо этого отформатированный прокси.

const PROXY_CONFIG = [{
  context: [
    "/api",
    "foobar.azurewebsites.net/api",
    "**/api"
  ],
  target: "http://localhost:1234",
  secure: false
}];

module.exports = PROXY_CONFIG;
создать файл с именем proxy.conf.js и заменить proxy.conf.json от package.json с js файл и попробуйте.

Другие вопросы по тегам