Restful 实体版本控制
Restful entity versioning
我正在研究 restful API。我正在寻找 "locks" 版本结构的解决方案,以满足 REST 版本控制。
对于我的项目,我使用 JAX-RS 和 JPA。我的 JPA 实体 可以 经常更改,但我不希望自动公开这些更改。我知道一个解决方案可以是 DTO(数据传输对象),这会增加很多 类,我不确定是否值得投资。
是否有 better/simpler 解决方案来实现这一点,或者 DTO 是唯一的方法吗?
简而言之,是的,DTO 是必经之路。这是一种使 API 和模型独立的方法。更重要的是,有时会出现模型 (JPA) classes 无法通过 REST API 公开的情况(例如,如果您具有循环对象依赖项)。
也许一开始 DTO 看起来像是开销,它是保持模型清洁的唯一方法(即表示层不可知 - 假设 REST 是一种表示模型的方式)。通过 RESTful API 公开 class 通常需要向模型添加一些特定的注释。将它们直接放在模型中只会污染它。
我正在研究 restful API。我正在寻找 "locks" 版本结构的解决方案,以满足 REST 版本控制。
对于我的项目,我使用 JAX-RS 和 JPA。我的 JPA 实体 可以 经常更改,但我不希望自动公开这些更改。我知道一个解决方案可以是 DTO(数据传输对象),这会增加很多 类,我不确定是否值得投资。
是否有 better/simpler 解决方案来实现这一点,或者 DTO 是唯一的方法吗?
简而言之,是的,DTO 是必经之路。这是一种使 API 和模型独立的方法。更重要的是,有时会出现模型 (JPA) classes 无法通过 REST API 公开的情况(例如,如果您具有循环对象依赖项)。 也许一开始 DTO 看起来像是开销,它是保持模型清洁的唯一方法(即表示层不可知 - 假设 REST 是一种表示模型的方式)。通过 RESTful API 公开 class 通常需要向模型添加一些特定的注释。将它们直接放在模型中只会污染它。