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

Ser*_*pov 14 asp.net-mvc n-tier-architecture asp.net-web-api

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

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

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

Dar*_*rov 9

可能有两种方法:

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

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

  • 如果你采用第一种方法,那么将Web API视为完全外部的东西.在此API中,您可以再次拥有一个数据访问层,服务访问层和公开的视图模型.但就您的Web API客户而言,这并不重要.这是一个实现细节. (2认同)