我正在开发一个安静的API。我正在寻找一种“锁定”版本结构的解决方案,以满足REST版本。
对于我的项目,我使用JAX-RS和JPA。我的JPA实体可以经常更改,但我不希望自动公开这些更改。我知道一个解决方案可以是DTO(Data Transfer Ojbect),这会增加很多类,我不确定它是否值得投资。
是否有更好/更简单的解决方案来实现这一目标,还是DTO是唯一的出路?
答案 0 :(得分:4)
简单地说,是的,DTO是要走的路。这是一种让您的API和模型独立的方法。更有时候,有些情况下模型(JPA)类不能通过REST API公开(例如,如果你有循环对象依赖)。 也许在开始时DTO看起来像开销一样,这是保持模型清洁的唯一方法(即表示层不可知 - 假设REST是呈现模型的一种方式)。通过RESTful API公开类通常需要向模型添加一些特定的注释。将它们直接放在模型中只会污染它。