【问题标题】:JAX-RS generic response and interface proxyJAX-RS 通用响应和接口代理
【发布时间】:2012-04-04 21:10:36
【问题描述】:

有什么方法可以使用 JAX-RS 响应返回通用描述实体类型?类似于 REST-Easy ClientReponse 但 JAX-RS 标准而不是特定于实现的类。

问题是我想通过其共享接口(由某些代理提供者创建)调用我的 REST 服务,并且仅返回对象不允许添加我需要的信息。例如。对于通过 POST 创建资源,我还想返回新创建资源的 URL 等等。返回简单响应不会显示此类响应中存储的实体类型。

Response<MyObject> getMyObject(@PathParam("id" Integer id)

到目前为止,我似乎必须返回简单的 Response,然后创建适配器,该适配器将简单地调用 Response.getEntity(.class)

【问题讨论】:

    标签: rest jax-rs resteasy


    【解决方案1】:

    可能没有这样的选择...

    【讨论】:

    • 很可惜。我一直在寻找相同的通用响应,我认为这将是对 JAX-RS 2.x 的巨大改进
    【解决方案2】:

    GenericEntity 允许您返回泛型。实际类型在运行时由 GenericEntity 保存,允许对对象进行序列化。

    这是一个人为的例子,说明如何使用它。

    GenericEntity entity = new GenericEntity<Employee>(new Employee());
    return Response.ok(entity).build();
    

    【讨论】:

    • IMO 这并不能解决问题。共享接口的方法签名应该怎么看?我知道如何将实体传递给响应,不需要使用 GenericEntity。客户端只需要 Response 对象(例如检查各种标头等),但从此类响应中获取返回类型的泛型也是可以的。
    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多