【发布时间】:2012-08-27 08:43:37
【问题描述】:
您能否指出我的文章或解释我如何声明使用 JSON 请求并基于 JSON 中的参数生成不同格式的输出的 RESTful Web 服务,这意味着客户可以获取 JSON 格式的输出,但也可以获取 pdf 格式的输出。我在 JBoss 5.1 上使用 Java 和 RestEasy。
【问题讨论】:
标签: java json rest restful-url
您能否指出我的文章或解释我如何声明使用 JSON 请求并基于 JSON 中的参数生成不同格式的输出的 RESTful Web 服务,这意味着客户可以获取 JSON 格式的输出,但也可以获取 pdf 格式的输出。我在 JBoss 5.1 上使用 Java 和 RestEasy。
【问题讨论】:
标签: java json rest restful-url
您可以将请求映射到返回 RestEasy Response 对象的方法上,使用 ResponseBuilder 构建响应,根据 JSON 中的参数动态设置响应的 mime 类型。
@POST
@Path("/foo")
@Consumes("application/json")
public Response fooService(MyObject obj) {
MyResponseEntity entity = MyObjectService.retrieveSomethingFrom(obj);
return Response.status(200).entity(entity).type(obj.isXml() ? "text/xml" : "application/json").build();
}
这样,如果代表传入 JSON 的 MyObject 域对象将参数 xml 设置为 true,则将 Response 对象参数化为生成 text/xml,否则将生成 application/json。 RestEasy 应该完成剩下的工作。
【讨论】:
你可以这样使用
@Path("/")
public class Test {
@Path("/test")
@POST
@Consumes("application/json")
@Produces("text/plain")
public Response addOrderJSON(OrderDetails details) {...}
}
【讨论】: