首页 > 解决方案 > 我是否必须拆分具有多个端点的控制器,这些端点代表更复杂对象的组件的 CRUD 操作?

问题描述

我目前有一个由 10 个不同对象组成的对象(我们称之为 ComplexObj),我需要创建一个或多个 REST 控制器来处理 ComplexObj 及其 10 个不同对象的 CRUD 操作。

我一直在研究,人们谈论的是如果他们有完全不同的业务逻辑,就将他们拆分。在这种情况下,ComplexObj 的对象的业务逻辑略有不同,但由于它们是 10,我觉得创建 10(每个对象的控制器)+1(ComplexObj 的控制器)会太多。

public class ComplexObj {
    private ObjA objA;
    private ObjB objB;
    private ObjC objC;
    private ObjD objD;
    private ObjE objE;
    private ObjF objF;
    private ObjG objG;
    private ObjH objH;
    private ObjI objI;
}

我的用例之一是,如果在命中端点保存 ObjA 时 ComplexObj 不存在,则将创建它。

标签: javaspringrest

解决方案


我想这就是创建不同微服务的想法出现的地方。这取决于如何从业务隔离的角度看待 ComplexObj、ObjA、ObjB...。

因此,如果 ObjA 和 ObjB 在业务上是两个不同的不相关资源,则必须创建两个具有不同端点的不同微服务。

现在,假设 ComplexObj 是一个由 ObjA 和 ObjB 组成的资源,它应该调用 ObjA 和 ObjB 的下游微服务来执行 CRUD 操作。


推荐阅读