我正在使用 Java EE 来运行我的后端系统,我有一个关于如何在创建 Web 服务方面适当分层的问题。
我几乎按照 DDD 的原则组织我的应用程序,这意味着我有一个域层、存储库层和一个服务层。所以服务层用@Stateless注解,它们是我的EJB。
现在,我可以为 JAX-RS 框架添加更多注释来为这个服务类添加注释……但我不知道这是否正确,原因如下:
- 这不会混合分层吗?
- 然后我怎么能对我的网络服务进行版本控制?假设我今天创建了一个 web 服务,明天我发现它真的很糟糕,但是在晚上有人创建了一个使用它的应用程序,如果我将其丢弃,应用程序将无法再使用。我想要的是可以在 www.myurl.com/api/v1/customers 上找到的 web 服务和 www.myurl.com/api/v2/a_new_customers_webservice 上的新 web 服务
这就是我想要的某种东西。
可能还有其他缺点吗?
那么解决方案是什么?如果我说我创建了另一组使用 JAX-RS 注释进行注释的类,然后这些方法可以在内部使用来自服务层中 EJB 的方法,我是否正确?
如果有另一个 Web 服务版本,我可以创建另一组使用其他 URL 和逻辑的类。还是我都错了?你会如何组织这个?