Web API适用于典型的n层架构?

时间:2012-07-12 03:37:27

标签: asp.net-mvc asp.net-web-api n-tier-architecture

通常当我为项目布局n层架构时,我有以下几层:

  • (域名模型,存储库合同)
  • 数据(在域模型之上工作的存储库)
  • 服务(聚合回购,缓存,验证)
  • 演示文稿(mvc app)

考虑到它将被实际应用程序和外部客户端使用,ASP.NET MVC 4 Web API在哪里适合?它是服务图层的一部分还是使用服务图层并与MVC应用程序处于同一级别?

2 个答案:

答案 0 :(得分:9)

可能有两种方法:

  1. 您决定通过HTTP调用从MVC应用程序中使用Web API。在这种情况下,调用代码(HttpClient)位于数据层中。无论您是从数据库中获取数据还是从远程Web服务调用中获取数据都不是真的重要。在这种情况下,由于Web API可能已经封装了大部分业务逻辑,因此您的服务层将非常薄,只是数据访问层的包装器,如果它没有带来任何额外的价值,甚至不存在。< / p>

  2. 由于Web API是用.NET编写的,因此您可以决定在MVC应用程序中直接引用包含此API服务层的程序集。在这种情况下,Web API应用程序的服务层将成为MVC应用程序的服务层。

答案 1 :(得分:0)

有两种可能性

  • 中间层或中间件:这通常是Web服务和WCF服务一直在运行的地方。使用REST比SOAP轻得多,因此这是事实上的用例。 Web和WCF服务在客户端生成方面更好,但Web API将逐渐赶上。
  • 表示层:这将为单页面应用程序或在客户端上使用数据和呈现的任何现代网站/应用程序提供数据。