我有一个带有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资源类中,但是如何在两个模型之间进行转换?
答案 0 :(得分:2)
你可以长时间做,也可以使用" automapper"。我已经看过一些,但由于我只在c#中使用了AutoMapper,因此无法推荐。
这个问题涉及有哪些等价物:Automapper for Java