Может ли интерфейс (в Angular) обрабатывать несколько бэкэндов?

#python #c# #angular #docker #iis

#python #c# #angular #docker #iis

Вопрос:

Моя компания предлагает финансовый продукт (готовый), построенный на C #, SQL Server (серверная часть) и Angular (интерфейс) с Microsoft IIS в качестве веб-сервера. Серверная часть в основном выполняется на уровне базы данных с использованием набора динамических SQL / хранимых процедур, где часть C # в основном обрабатывает связь с интерфейсом.

Теперь мы хотим внедрить продукт машинного обучения в тот же интерфейс. Однако проблема в том, что команда data science кодирует на Python. Вместо того, чтобы заставлять C # выполнять скрипты Python, мы говорили о создании микросервиса Python. Это позволило бы команде data science работать независимо.

Сервис будет представлять собой приложение ML, встроенное в веб-фреймворк Python (например, Django, FastAPI и т. Д.), А Затем контейнеризированное с помощью Docker. Приложение также будет обрабатывать аутентификацию. Связь с приложением и из приложения осуществляется через RESTful API и подключение DB к встроенной базе данных. Мы предполагаем, что основной продукт и микросервис запущены на одном сервере («рядом» друг с другом).

Мы хотим, чтобы интерфейс взаимодействовал с обоими серверными частями (основным продуктом и микросервисом). Можно ли это сделать? Или, что более важно, это должно быть сделано?

Ответ №1:

Да, Angular — это интерфейс, который является клиентом, поэтому его не волнует язык API REST, поэтому он может работать с разными API на разных хостах с разными языками.

Ответ №2:

Да, это можно сделать, насколько я понимаю, ваши бэкэнды — это службы REST, пока они REST, ничего не изменится, также Angular имеет хорошие оболочки HttpClient, которые будут легко и красиво обрабатывать все остальные вызовы