0

我正在使用 Spring Boot 构建可部署的简单 REST。决定通过首先使用失败的验收测试然后使用 TDD 直到它的绿色来创建它。

我的模块很简单,我有 3 个 API:

  1. 从数据存储中检索数据列表。
  2. 将项目添加到数据存储区。
  3. 从数据存储中删除项目。

我觉得抽象数据存储并可能由 Map 数据结构支持以进行测试是个好主意,如果我想用于部署/发布和端到端测试,可以将其与 NoSQL 或 SQL db 一起使用。

在服务层方面,我不确定,因为它只会将调用委托给没有逻辑的存储库。

所以标准方法是控制器->服务->存储库。在我的案例中,服务做的不多(可能有一些异常处理,但不多),我最终会得到接口和实现作为额外的代码以及几行代码。在我的情况下,我喜欢使用控制器-> 存储库解决方案,但这不是我见过的做法,也不确定其他人会如何看待它。

实现这种系统的最佳方法是什么?

4

2 回答 2

1

这是一个相当基于意见的问题,但如果您要问是否必须使用 3 层架构,我会说不。务实一点,如果你没有看到一个类/层/模块存在的理由,它就不需要存在。

存储库有一个目的(存储/检索),而 api 层有一个目的,通过 HTTP 提供这些东西。

这是一篇使用 sparkframework 构建小型服务的文章:https ://dzone.com/articles/building-simple-restful-api

于 2016-02-23T11:53:02.593 回答
1

我觉得抽象数据存储是个好主意

你说的对。例如,抽象在 DDD(领域驱动设计)中称为“存储库”。

在服务层方面,我不确定,因为它只会将调用委托给没有逻辑的存储库。

我很确定有您想要验证的数据。所以你应该在中间有一个层(例如域层)来负责这个验证。

即便如此,如果您觉得您的应用程序很简单并且不需要这样的层,那就不用了。您将拥有更少的柔软设计,但一开始会更简单。小心:在发展你的应用程序时,你可能会遇到麻烦。

希望这会有所帮助。

于 2016-02-23T11:55:31.867 回答