存储库模式-我是否“需要” REST API中的服务层?

问题描述 投票:-1回答:2

我提出这个问题是为了征询您的意见,并查看我是在愚蠢还是在做书呆子。


问题(tl; dr;)

我“需要”服务层(出于良好实践),当存储库层已经可以通过查询以更快的方式完成大多数事情(例如FindUserByID)时,当服务必须手动完成所有这些事情时更低效和超级手动的方式?

描述(针对那些想了解我的动机的人)

因此,我一直在处理Clean Architecture,这很棒,但不适用于REST体系结构。因为,Clean Architecture实际上是由Controllers层构成的,而RPC是处理控制器而不是REST的层。 REST处理资源。 因此,我删除了“控制器”层,并且我也在考虑是否真的需要“服务”层。

因此REST需要“服务”和/或“存储库”。奇怪的是,我认为这两者是重叠的。我知道服务应该是处理“业务规则”]。但这是东西:

存储库可以对服务执行相同的工作,但是存储库可以进行以更有效的方式完成相同的工作

由于允许存储库与数据库直接通信,因此它们可以使用数据库查询(sql或nosql的查询)。 写入效率读取效率性能效率更多。

服务方式:

说,您需要通过其ID查找用户,然后从其好友列表中按其名称选择一个特定的朋友。

  • 您从存储库获得所有用户
  • 您为所有用户创建一个循环
  • 您创建一个条件
  • ,在其中检查哪个用户具有所需的ID
  • 您为好友列表中的所有好友创建了一个[[loop
  • 您输入
  • 条件
  • 以检查朋友的名字

    摘要?像20到30行代码一样,性能会降低吗?

存储库方式:

filter := bson.M{ "_id": id, "friendlist.name": friendsName, } projection := bson.M{ "friendlist": 1 } friend, err := mongoDb.find(filter, projection)

摘要?像3-4行代码,以及99%的数据库性能。

因此,“服务层”部分是否真正需要?当存储库本身已经可以更高效地完成所有工作时,将其分为服务层和存储库层是否有任何真正的体系结构优势?

我提出这个问题是为了征求您对此事的意见,并查看我是愚蠢还是or脚。问题(tl; dr;)当存储库层...

rest architecture repository-pattern
2个回答
1
投票
我“需要”服务层(出于良好实践),当存储库层已经可以通过查询以更快的方式完成大多数事情(例如FindUserByID)时,当服务必须手动完成所有这些事情时更低效和超级手动的方式?

0
投票
对于像“通过id检索用户”这样的小样本,也许不需要服务层。
© www.soinside.com 2019 - 2024. All rights reserved.