Настроить конечную точку службы для приложения angular 4/5

Есть приложение angular4 и веб-служба данных API для этого приложения. У 100 клиентов этого приложения и службы данных. У них есть эта служба данных и угловое приложение на их IIS. Таким образом, каждое из 100 приложений angular использует ДРУГОЙ адрес конечной точки. Таким образом, угловое приложение в каждом клиенте требует конфигурации для установки адреса конечной точки, который должен быть установлен в клиенте. Ни одна постоянная конечная точка не может быть записана в любой файл приложения angular. Как решить эту проблему для приложения angular 4/5?


person bmi    schedule 08.11.2017    source источник
comment
Точнее, конечную точку нельзя жестко запрограммировать в файлах .ts (environment .ts) - потому что они не могут быть изменены в клиенте. Мне нужен файл конфигурации клиентского приложения, который можно менять индивидуально для каждого клиента. Сервис данных (asp.net web api) в порядке, у него есть его web.config - он работает. Но файл конфигурации для приложения angular, похоже, не поддерживается.   -  person bmi    schedule 11.11.2017


Ответы (1)


Одно из решений, которое я видел для этой проблемы, - создать файл с именем configuration.json (или любым другим именем) в папке с ресурсами вашего проекта и изменить все конечные точки, когда вы: повторное развертывание на сайте.

В своем коде вы должны создать службу angular, которая считывает json из файла и предоставляет его как объект тем частям вашего приложения, которым требуются конечные точки службы данных. Это потребует использования HttpClient для выполнения запроса GET в файле configuration.json.

Кроме того, вы можете использовать преобразователь, который использует службу, для разрешения данных среды перед переходом к каждому маршруту.

Эта статья достаточно хорошо описывает решение: https://www.intertech.com/Blog/deploying-angular-4-apps-with-environment-specific-info/

Главное, что вы можете изменить конечные точки в файле, и ваше приложение разрешит их во время выполнения.

person Wingnod    schedule 14.11.2017
comment
Спасибо, я нашел что-то вроде этого - чтение (json) файла конфигурации из папок с ресурсами. Но - как я вижу, у веб-приложения есть проблема с чтением локального файла - вероятно, из-за безопасности. Но в некоторых случаях - когда URL-адрес веб-API похож на URL-адрес веб-клиента, можно прочитать файл из папки с ресурсами. В некоторых случаях я получал плохие результаты (неверный путь в веб-приложении, относительный путь к файлам ресурсов не работал должным образом). Я нашел приемлемое решение с использованием APP_INITIALIZER, функции javascript - он работает с компиляцией AOT и в режиме prod. - person bmi; 20.11.2017