您的小型 REST 系统应该有多少层?
How many layers your small REST system should have?
我正在使用 Spring Boot 构建简单的可部署 REST。决定通过首先使用失败的验收测试然后使用 TDD 直到它变绿来创建它。
我的模块很简单,我有 3 个 API:
- 正在从数据存储中检索数据列表。
- 将项目添加到数据存储。
- 从数据存储中删除项目。
我觉得抽象数据存储是个好主意,并且可能出于测试目的由 Map 数据结构支持,如果我想将其与 NoSQL 或 SQL db 一起使用 deployments/releases 和端到端测试。
在服务层方面,我不确定,因为它只会在没有逻辑的情况下委托对存储库的调用。
所以标准方法是控制器->服务->存储库。在我的例子中,服务做的不多(可能有一些异常处理,但不会更多),我最终将接口和实现作为额外的以及更多的代码行。在我的情况下,我很想寻求控制器->存储库解决方案,但这不是我见过的做法,也不确定其他人会如何看待它。
实施此类系统的最佳方式是什么?
这是一个基于观点的问题,但如果你问的是 3 层架构是否是必须的,我会说不是。务实一点,如果您看不到 class/layer/module 存在的理由,那么它就不需要存在。
存储库有一个目的(store/retrieve),api 层有一个目的,即通过 HTTP 提供这些东西。
这是一篇使用 sparkframework 构建小型服务的文章:https://dzone.com/articles/building-simple-restful-api
I feel like it is good idea to abstract datastore
你是对的。例如,抽象在 DDD(领域驱动设计)中称为 'Repository'。
On the service layer side I am unsure since it would just delegate call to repository with no logic.
我很确定您有想要验证的数据。所以你应该在中间有一个层(例如域层)负责这个验证。
即便如此,如果您觉得您的应用程序很简单并且不需要这样的层,那么就不用了。一开始你的设计会不那么灵活,但会更简单。请注意:在改进您的应用程序时,您可能 运行 陷入麻烦。
希望这会有所帮助。
我正在使用 Spring Boot 构建简单的可部署 REST。决定通过首先使用失败的验收测试然后使用 TDD 直到它变绿来创建它。
我的模块很简单,我有 3 个 API:
- 正在从数据存储中检索数据列表。
- 将项目添加到数据存储。
- 从数据存储中删除项目。
我觉得抽象数据存储是个好主意,并且可能出于测试目的由 Map 数据结构支持,如果我想将其与 NoSQL 或 SQL db 一起使用 deployments/releases 和端到端测试。
在服务层方面,我不确定,因为它只会在没有逻辑的情况下委托对存储库的调用。
所以标准方法是控制器->服务->存储库。在我的例子中,服务做的不多(可能有一些异常处理,但不会更多),我最终将接口和实现作为额外的以及更多的代码行。在我的情况下,我很想寻求控制器->存储库解决方案,但这不是我见过的做法,也不确定其他人会如何看待它。
实施此类系统的最佳方式是什么?
这是一个基于观点的问题,但如果你问的是 3 层架构是否是必须的,我会说不是。务实一点,如果您看不到 class/layer/module 存在的理由,那么它就不需要存在。
存储库有一个目的(store/retrieve),api 层有一个目的,即通过 HTTP 提供这些东西。
这是一篇使用 sparkframework 构建小型服务的文章:https://dzone.com/articles/building-simple-restful-api
I feel like it is good idea to abstract datastore
你是对的。例如,抽象在 DDD(领域驱动设计)中称为 'Repository'。
On the service layer side I am unsure since it would just delegate call to repository with no logic.
我很确定您有想要验证的数据。所以你应该在中间有一个层(例如域层)负责这个验证。
即便如此,如果您觉得您的应用程序很简单并且不需要这样的层,那么就不用了。一开始你的设计会不那么灵活,但会更简单。请注意:在改进您的应用程序时,您可能 运行 陷入麻烦。
希望这会有所帮助。