【问题标题】:Decoupling of domain model and rest representation域模型和剩余表示的解耦
【发布时间】:2014-10-11 20:14:44
【问题描述】:

我确实有一个带有 JPA 注释的域模型作为我的应用程序的数据结构。现在,假设我们有两个域类,其中包含以下字段 + getter 和 setter:

Category
- label
- color

Task
- category
- label
- created
- due

可以看出,Task 依赖于 Category 类。现在,我有两个 REST 资源:/api/categories/api/tasks 以及可选的 /{id} URI 参数。

现在,当通过 REST 资源检索或更新 Task 对象时,我不想发送或接收依赖的 Category 对象。我宁愿只在 Task REST 对象中包含参考 ID。

{
    "id": 123,
    "category": {"id": 456},
    "label": "Test",
    "created": "2014-01-01T00:00:00",
    "due": "2014-04-05T00:00:00"
}

但是,如果我要通过 REST 资源公开我的核心域模型,Jackson 也会将 Category 对象放入我不想要的 Task 对象中。

所以,我认为拥有一个单独的 REST 表示模型是个好主意。解耦然后从 REST 表示对象转换为域对象的最佳方法是什么。我已经想办法使用服务,然后将这些服务注入到 REST 资源类中,但是如何在两个模型之间进行转换?

【问题讨论】:

    标签: java rest jpa jax-rs


    【解决方案1】:

    您可以长期进行,也可以使用“自动映射器”。我见过一些,但我不能推荐任何一个,因为我只在 c# 中使用过 AutoMapper。

    这个问题涉及有哪些等价物:Automapper for Java

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 1970-01-01
      • 2011-09-19
      • 2016-10-22
      • 1970-01-01
      • 2011-01-20
      • 2015-05-05
      • 1970-01-01
      • 2016-06-13
      相关资源
      最近更新 更多