我有一个JAX-RS资源类,对于其中一个方法,我想将一个表示JSON Map<String, String>
的简单POST
绑定到服务器,而不是创建一个实体类对于这么短的请求。我以为我可以做到以下几点:
@POST
public Response create(Map<String, String> json) {
//business logic...
return Response.created(UriBuilder.fromPath("{id}").build(id)).build();
}
但是当我用curl命中该端点时,我得到415不支持的媒体类型。有没有办法允许像这样的简单绑定,还是需要实际注释的POJO?
答案 0 :(得分:0)
假设您不想编写自己的MessageBodyReader
来告诉框架如何将json转换为通用Map
,您仍然可以接受String
并使用Jackson阅读它如:
@POST
public Response create(String json) {
Map<String,Object> map = new ObjectMapper().readValue(json, Map.class);
//business logic...
return Response.created(UriBuilder.fromPath("{id}").build(id)).build();
}