Подтвердить что ты не робот

Где Web API подходит для типичной n-уровневой архитектуры?

Обычно, когда я компоную n-ярусную архитектуру для проекта, у меня есть следующие слои:

  • Домен (модель домена, контракты хранилища)
  • Данные (репозитории, работающие над моделью домена)
  • Сервис (агрегирует репозиции, кеширование, проверку)
  • Презентация (приложение mvc)

Где бы ASP.NET MVC 4 Web API соответствовал этому, учитывая, что он будет использоваться фактическим приложением и внешними клиентами? Является ли он частью уровня службы или использует слой службы и находится на одном уровне с приложением MVC?

4b9b3361

Ответ 1

Могут быть 2 подхода:

  • Вы решили использовать свой веб-API из приложения MVC через HTTP-вызовы. В этом случае код вызова (HttpClient) находится в вашем слое данных. Если вы извлекаете данные из базы данных или вызова удаленной веб-службы, это не имеет большого значения. В этом случае, поскольку веб-API, возможно, уже инкапсулирует большую часть бизнес-логики, ваш уровень обслуживания будет очень тонким, просто оболочкой вокруг уровня доступа к данным или даже несуществующим, если он не приносит никакого дополнительного значения.

  • Поскольку веб-API написан в .NET, вы можете решить напрямую ссылаться на сборку, содержащую уровень сервиса этого API в вашем приложении MVC. В этом случае сервисный уровень вашего приложения Web API станет уровнем обслуживания вашего приложения MVC.

Ответ 2

Есть две возможности

  • Средний уровень или промежуточное ПО: здесь обычно работают веб-службы и службы WCF. Использование REST намного легче, чем SOAP, поэтому это де-факто использование. Веб-службы и службы WCF лучше подходят для создания клиентов, но веб-API будет постепенно догонять.
  • Уровень презентации: это предоставит данные для одностраничных приложений или любого современного веб-сайта/приложения, которое использует данные и визуализирует их на клиенте.