2016-03-21 43 views
0

我正在使用一个restful API。我正在寻找一种解决方案来“锁定”版本的结构,以满足REST版本。Restful实体版本

对于我的项目,我使用JAX-RS和JPA。我的JPA实体可以经常更改,但我不想让这些更改自动显示。我知道一个解决方案可以是DTO(数据传输Ojbect),这将增加很多类,我不确定是否值得投资。

是否有更好/更简单的解决方案来实现这一点,还是DTO唯一的出路?

+3

DTO获胜。否则,你需要泄漏你的内部结构,正如你所提到的,应用程序的内部结构往往会改变,你不希望你的API改变。 – Augusto

回答

4

简而言之,是的,DTO是要走的路。这是让API和模型独立的一种方法。更有时,有些情况下模型(JPA)类无法通过REST API公开(例如,如果您有循环对象依赖关系)。 也许在开始时DTO看起来像开销一样,这是保持模型清洁的唯一方法(即表示层不可知的 - 假设REST是呈现模型的一种方式)。通过RESTful API公开类通常需要向模型添加一些特定的注释。让他们直接模仿会污染它。