如何在 REST 服务中获取不同 mime 类型的 Map 参数?
如何将地图指定为 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
}
}
我正在使用 Jersey。我应该为此实现一个 MessageBodyReader
吗?但是为像 Map
这样的泛型类型实现一个阅读器对我来说似乎是一个糟糕的方法。也许我应该在 Map 对象之上编写一个包装类。
你的想法是什么?谢谢。
How can I specify a map as one of the parameters of a REST service e.g
@Path("/servicepath")
@Consumes(MediaType.APPLICATION_XML)
public class MyResource {
@POST
public Response getMap(Map<String, List<Object>>) {
//code here
}
}
or
@Path("/servicepath")
@Consumes(MediaType.APPLICATION_JSON)
public class MyResource {
@POST
public Response getMap(Map<String, List<Object>>) {
//code here
}
}
I am using Jersey. Should I implement a MessageBodyReader
for that? But implementing a reader for a generic type like Map
seems a bad way for me. Maybe I should write a wrapper class on top of the Map
object.
What is your ideas? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JAX-RS 规范(第 4.2.4 节)确实要求实现者(如 jersey)为
MultivaluedMap
提供MessageBodyReader
实现,用于使用 < code>application/x-www-form-urlencoded mime 类型。例如,您可以做这样的事情:这对于您想要做的事情来说还不够吗?
The JAX-RS specification (section 4.2.4) does require that implementors (like jersey) provide a
MessageBodyReader
implementation forMultivaluedMap<String, String>
which is used to consumeapplication/x-www-form-urlencoded
mime types. So for example, you can do something like this:Is this not sufficient for what you're trying to do?