在Java开发的基于REST的应用程序java体系结构中,我应该分割请求/验​​证的实现和域的一个实现吗?

时间:2015-08-31 02:26:06

标签: java rest

过去我可以说我的域名模型为Bike,因此我制作了一个名为Bike的界面,过去我会创建一个。在该实现中,我进行了补救验证,JSON规则,数据库映射注释等。 这似乎使系统变得丑陋和脆弱。如此多的回转来映射,显示和转换。

我想知道(正如我实验)我是否应该创建一个只接受输入并验证数据的实现,并从中创建一个模型实例,以便在进行一些转换后在代码内部更深入地使用。 所以:

(Type)Bike -> BikeWeb, BikeModel

然而,当我这样做时,似乎我失去了json转换的全部要点,并增加了接口地狱的复杂性。因为我看到的是

(Type)Bike -> (Types) BikeWeb, BikeModel -> BikeWebImpl, BikeModelImpl

...次数1000

我问的是设计模式我描述的是一个典型的关于走哪条路的辩论,我应该使用的实际模式,或者我的葫芦

似乎java世界中的每个REST解决方案都存在这种困境,所以也许应该使用其他解决方案,我也可以这样做。

1 个答案:

答案 0 :(得分:0)

老实说,我不知道为什么你需要接口以及模型的实现。为什么不使用Bike类来表示模型?

您正在寻找的是DTO模式。 DTO对象表示通过请求或响应发送的有效负载的实例。这样的对象可以根据JSON语法和一些值进行验证 - 我的意思是某些字段可以设置为保持0到10之间的值。这样的验证可以在这个级别完成。第二种对象是模型本身。这样,只有两个类BikeDTOBike。请看一下这个article。它可能会揭示你的怀疑。