我应该制作 restful 网络应用程序多个模块吗

Should I make restful web app multiple modules

我们小组曾经使用球衣构建 Web 应用程序。通常我们会有两个模块,dao 和 api。 Dao由entity 类和dao interfaces/implementation 类组成,而Api module拥有所有其余的api 类。最近,我们一直在从 Jersey 过渡到 Spring MVC 和 Spring Boot。由于我们使用 Spring 数据和 JPA,因此似乎没有必要为所有接口和实现提供一个 dao 包。相反,JPA 存储库负责所有数据访问。服务建立在存储库层之上。将 JPA 存储库内容与服务、控制器等放在同一模块中感觉更自然。

组织 restful 网络 api 项目的最佳做法是什么?我是否应该像我们之前所做的那样将项目设置为一个双模块应用程序,即将所有实体都放在一个模块(模型或 dao)中,其余的则转到另一个名为 api 的模块?如果这是要走的路,我应该保留 persistence.xml 包含实体模块或 api 模块中实体的所有 ORM 映射吗?

这主要是我对 1 vs 2 模块的看法,但我认为没有唯一的答案。这可能取决于网络应用程序的大小。是同一个 codebase/build 中的单个 API 是基本的 CRUD,还是您有许多独立但较小的 API 创建更多的微服务环境。我们有一些更大的整体应用程序,我们确实将 Dao 的东西分离到单独的模块中。我们还将 Google 或 Stripe 等第 3 方依赖项分离到一个模块中,甚至与 Dao 的东西分开。如果需要,可以更轻松地创建单独的 jar。

无论如何,更重要的是你可以确保你有单向依赖。这意味着 API 依赖于 DAO 而不是相反。好奇别人怎么想