Возможно ли это с помощью 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
настроен на локальный порт локального хоста облачной функции для целей разработки). Приложение Angular запускается с помощью команды "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;
Спасибо за любую помощь, которую вы можете предоставить!
proxy.conf.js
, как вы предложили, с рядом шаблонов и начиная сng serve --proxy-config proxy.conf.js --open
, но, к сожалению, это не сработало. HTTP-вызовы по-прежнему направляются на URL-адрес рабочей функции Azure. Похоже, в конфигурации потребуются дополнительные параметры для просмотра полного URL-адреса HTTP-вызова. Речь также пойдет о захвате домена/происхождения. 03.09.2017