ASP Core WebAPI для нескольких сайтов, сохранение данных в разных базах данных - PullRequest
0 голосов
/ 08 апреля 2019

Я веб-разработчик в компании, которая создает веб-приложения для нескольких клиентов. Мне было интересно, если это возможно, чтобы создать веб-API, который ориентирован на количество баз данных. Под этим я подразумеваю, что в основном все сайты будут иметь одинаковые поля, содержащие данные, давать или брать пару полей.

Для Front-End я использую Angular 5 и выше, получая информацию о форме и отправляя данные в базу данных. Я использую ASP Core для внутренней обработки.

Если у меня есть три отдельных сайта, которым нужно публиковать данные в трех разных базах данных, могу ли я использовать один экземпляр ASP Core Web API для обработки данных формы и сохранения, используя разные строки подключения и Entity Framework. Из пользовательского интерфейса Angular я бы отправил запрос с информацией о форме и заданным идентификатором и на основе этого идентификатора получил бы правильный DB_Context с правильной строкой соединения и обработал данные.

Я думал о том, чтобы сделать это таким образом, иначе мне пришлось бы создавать отдельные веб-интерфейсы для каждого сайта.

1 Ответ

1 голос
/ 09 апреля 2019

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

На уровне доступа к данным вашего бэкэнда вам нужно будет создать несколько DbContext, по одному для каждой базы данных, которую вы хотите использовать.Эти DbContexts будут использоваться вашими репозиториями, эти репо будут использоваться вашими сервисами, и эти сервисы будут использоваться вашими контроллерами (например).

Вам просто нужно связать нужные конечные точки с правильными DbContexts, чтобы получить соответствующие данные.

Вот статья о том, как работать с несколькими DbContexts в одном приложении: https://hackingmonkeys.com/blog/2018-03-24/ef-core-multiple-db-contexts-schemas-and-projects

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...