2

фон Пробежав через Начало работы с API приложений и ASP.NET в учебнике Azure App Service (https://azure.microsoft.com/en-gb/documentation/articles/app-service-api-dotnet-get-started/), у нас был вопрос архитектуры возникают сегодня вокруг решений по дизайну, направленных на разделение слоев API приложений Do To List в приложении API среднего уровня и API уровня данных.Azure приложения - Распределенная архитектура - 1 API Layer против 2 API Layers - Проектные решения

ToDoListApplicationArchitecture

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

Другой способ задать этот вопрос: каковы плюсы и минусы наличия отдельного API-интерфейса уровня среднего уровня и API-интерфейса уровня данных при создании приложения?

Другие вопросы Я имел чтение из веб-приложений архитектуры: 1 или п API вопрос (ссылка, которая следует), который, будучи проницательным, был немного отличается от вопроса мы просим. Мы говорим о едином домене, который имеет отдельные уровни API для среднего уровня (логический) и уровня данных.

Web apps architecture: 1 or n API

ответ

1

Это, конечно, зависит. Решение о том, строить ли то, что я называю «инфраструктурные услуги», очень сильно зависит от ваших потребностей и ваших приложений.

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

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

+0

Спасибо за объяснение. Роб, это именно то, что я искал. В конкретном сценарии, который мы рассматривали, я вижу теперь, что мы не будем осознавать преимущества использования службы инфраструктуры в обозримом будущем, поэтому для нас будет использоваться один уровень API с шаблоном DAO. Еще раз спасибо! – Arnie

0

Я думаю, что пример дизайна несколько запутан. В реальном мире я еще не видел такой дизайн, потому что дизайн выглядит так, что каждая функция должна быть http/rpc-call?

Мой опыт заключается в том, что SPA использует открытый API (или API шлюза), который затем вызывает ваш внутренний API/Microservices для агрегирования результатов. Это ваши Microservices, которые могут иметь DAO и, самое главное, бизнес-логику.