1

我想知道是否可以强制java中的rest框架返回某个类的实际实现,而不是只在抽象类中可见的信息。

所以我有一个看起来像的方法

@GET
@Path("/}")
public Model getModel() {
    return (Car) system.getCar();
}

所以我希望当有人走这条路时,返回的是关于 CAR 的信息,而不仅仅是模型中包含的信息。是否可以通过一些注释来强制这种行为?

PS上面的例子只是为了演示。实际原因是我有一个具有抽象类参数的类,我想查看 xml 中有关具体实现的信息,以便知道它是什么类型。

感谢您的帮助。

干杯

编辑

说实话,我不知道实施是什么。但也许这篇关于我使用的文章可以帮助你http://docs.codehaus.org/display/TYNAMO/tapestry-resteasy+guide

4

3 回答 3

0

我在我的 REST 项目中对此进行了测试,它无需任何额外工作即可工作。我正在使用 RestEasy 框架来实现REST Web 服务。我检查了 XML 和 JSON 数据类型。对于 JSON 序列化,我使用的是jackson库。

于 2012-10-07T14:02:12.567 回答
0

REST 实现将类的实际具体实例(不是抽象类,因为无论如何您都不能拥有抽象类的实例)序列化为请求的内容类型,例如 JSON 或 XML。被序列化的是基于它们的映射的域对象的字段。您可以控制域对象的哪些字段被序列化,或者您可以创建一个自定义 POJO,其中仅包含您希望在响应中发送的字段。

于 2012-10-07T14:03:43.043 回答
0

它不适用于我的 JSON(使用 JACKSON),我认为它确实不应该工作。如果您的 API 提供了 aModel那么它不应该返回Car字段。API 的执行程序可能无法解析返回的Car字段,因为预期的Model.
这将是一种向上转换,通常显示出糟糕的设计。恕我直言
不过我喜欢这个问题:)

于 2012-10-12T20:33:02.000 回答