你能指点我或者解释我如何声明使用JSON请求的RESTful web服务,并且基于JSON内部的参数产生不同格式的输出,这意味着客户可以用JSON输出,但也可以用pdf输出。我在JBoss 5.1上使用Java和RestEasy。
答案 0 :(得分:3)
您可以在返回RestEasy Response
对象的方法上映射请求,使用ResponseBuilder
构建响应,根据JSON中的参数动态设置响应的mime类型。< / p>
@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
{{1}}。 RestEasy应该做其余的事。
答案 1 :(得分:0)
你可以这样使用
@Path("/")
public class Test {
@Path("/test")
@POST
@Consumes("application/json")
@Produces("text/plain")
public Response addOrderJSON(OrderDetails details) {...}
}