如何将地图指定为REST服务的参数之一,例如
@Path("/servicepath")
@Consumes(MediaType.APPLICATION_XML)
public class MyResource {
@POST
public Response getMap(Map<String, List<Object>>) {
//code here
}
}
或
@Path("/servicepath")
@Consumes(MediaType.APPLICATION_JSON)
public class MyResource {
@POST
public Response getMap(Map<String, List<Object>>) {
//code here
}
}
我正在使用泽西岛。我应该为此实施MessageBodyReader
吗?但是为Map
这样的通用类型实现读者对我来说似乎不怎么样。也许我应该在Map
对象之上编写一个包装类。
你有什么想法?感谢。
答案 0 :(得分:1)
JAX-RS规范(第4.2.4节)确实要求实现者(如jersey)为MessageBodyReader
提供MultivaluedMap<String, String>
实现,用于使用application/x-www-form-urlencoded
mime类型。例如,您可以执行以下操作:
@Path("/servicepath")
@POST
@Consumes("application/x-www-form-urlencoded")
@Produces("text/plain")
public String doTheFormThing(MultivaluedMap<String, String> formdata) {
return formdata.toString();
}
这不足以满足您的目标吗?