【发布时间】: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 资源类中,但是如何在两个模型之间进行转换?
【问题讨论】: