2

您能否指出我的文章或解释我如何声明使用 JSON 请求并基于 JSON 中的参数生成不同格式的输出的 RESTful Web 服务,这意味着客户可以获取 JSON 格式的输出,但也可以获取 pdf 格式的输出。我在 JBoss 5.1 上使用 Java 和 RestEasy。

4

2 回答 2

3

您可以将请求映射到返回 RestEasyResponse对象的方法上,使用 aResponseBuilder来构建响应,根据 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();
}

这样,如果MyObject代表传入 JSON 的域对象的参数xml设置为 true,则该Response对象被参数化为产生,text/xml否则它产生application/json。RestEasy 应该做剩下的事情。

于 2012-08-27T09:46:54.117 回答
0

你可以使用这种方式

@Path("/")
public class Test {

@Path("/test")
@POST 
@Consumes("application/json")
@Produces("text/plain")
public Response addOrderJSON(OrderDetails details) {...}


}
于 2012-08-27T09:44:43.010 回答