Web API业务层架构及其职责

3
我在我的Web API业务层中有以下类,我想知道GatewayService类应该放在Business层还是应该放在名为BusinessService的单独项目中?因为它没有直接被控制器类调用,也不依赖于数据存储库。
Business层:
- GatewayService(引用<dll文件>方法并调用外部Web服务,返回交易列表) - UserService(使用<repository类>从数据层返回所有用户列表) - TransactionService(从<UserService>获取所有用户列表,然后从<Gateway Service>获取他们的所有交易)
以下是Transaction Controller的操作:
- 从<UserService>获取用户列表 - 将用户列表传递给<TransactionService>,然后返回用户交易列表 - 将所有交易列表传递给<TransactionService>,通过数据存储库处理它们
2个回答

1
在N层架构中,TransactionService 应该位于 Application 层,然后你的 GatewayService 可以是业务层的一部分。

enter image description here

在使用干净架构

GatewayService 应该是 Presistence 或者 Infrastracture 层的一部分,因此不属于 business 层(这里是指 domainapplication)。

enter image description here


我从未在 WEB API 项目中看到过应用层。 - user1263981
无论是 WEB API、MVC 还是 ConsoleApp 都没有关系。重要的是你模块的结构以及在速度和效率之间找到平衡点。如果您使用 n 层架构,请查看 ABP 项目;如果您使用 Clean Architecture,请查看 Github 上的 JasonGT/NorthwindTraders 项目。 - Sebastian 506563
用户服务怎么样?这个会留在业务层吗? - user1263981
在n层架构中,是的。 - Sebastian 506563
我可以把我的应用层称为“应用服务”吗? - user1263981
抱歉,这涉及到了太多细节。我也不知道ApplicationService的职责是什么。答案中包含足够的关键词,可以让您自行研究。 - Sebastian 506563

0

这将成为业务层的一部分。业务层是您实现系统外部要求(例如物流等)的地方。这与您的网关服务属于同一类别。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接