Web API 业务层架构及其职责

Posted

技术标签:

【中文标题】Web API 业务层架构及其职责【英文标题】:Web API Business Layer Architecture and its responsibilities 【发布时间】:2019-04-17 23:17:16 【问题描述】:

我的 web api 业务层中有以下类,我想知道 GatewayService 类是否应该在业务层中,还是应该将其放在名为 BusinessService 的单独项目中?因为它没有在控制器类中直接调用,也不依赖于数据存储库?

业务层

GatewayService(引用 方法并调用外部 Web 服务并返回事务列表) UserService(使用数据层的返回生产数据库中所有用户的列表) TransactionService(从获取所有用户的列表,然后从获取他们的所有交易)

这是事务控制器所做的;

事务控制器

获取用户列表

将用户列表传递给 ,然后它将返回用户交易列表

将所有事务的列表传递给 以通过数据存储库类处理它们

【问题讨论】:

【参考方案1】:

如果是N-Layer架构

TransactionService 应该在Application 层中,然后您的GatewayService 可以是Business Layer 的一部分。

如果是清洁架构

GatewayService 应该是PresistenceInfrastracture 层的一部分,因此它不是business 层(此处为domainapplication)。

【讨论】:

我从未在 WEB API 项目中看到过应用层。 不管是WEB API、MVC还是ConsoleApp。它是关于你的模块的结构,并在速度和效率之间找到一个中间立场。如果是 n 层检查 ABP 项目,如果是 github 上的 Clean Architecture JasonGT/NorthwindTraders 项目 用户服务呢?这会留在业务层吗? 在 n 层中是的。 我可以将我的应用层称为 ApplicationService 吗?【参考方案2】:

它将成为业务层的一部分。业务层是您为系统 fx 实现外部需求的地方。物流等等。与您的网关服务属于同一类别。

【讨论】:

以上是关于Web API 业务层架构及其职责的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis

分层架构中的服务层

业务层拆解和业务对象类型

SSH

SSH框架总结

MyBatis学习笔记总结