【发布时间】:2016-12-05 12:16:20
【问题描述】:
我需要让我的 Java 服务器接收 PUT 请求以从 id 和 json 正文创建新用户,URI 需要如下:
/usermanagement/user/$id { "name":john, "type":admin }
鉴于我已经制作了一个简单的 Java 类,并且以后可以使用 Jackson 将 JSON 转换为 POJO,这是我的问题: 如何指定 PUT 请求以同时接受 id 和 JSON 正文作为参数?到目前为止,我得到了:
@PUT
@Path("{id}")
@Consumes(MediaType.APPLICATION_JSON)
public String createUser(@PathParam("id") int id){
User user = new User();
User.setId(id);
return SUCCESS_MSG;
}
这可行,但我没有运气添加 JSON 主体并让函数解析它。我试过了:
public String createUser(@PathParam("id") int id, String body){
return body;
}
在 Postman 中测试时应该返回相同的输入 JSON,但是它总是返回“资源不可用”错误。
我觉得我在这里缺少一些明显的东西?
【问题讨论】:
-
我认为你需要添加一个未修饰的参数来接收你的身体。
public String createUser(@PathParam("id") int id, String body) -
这是我尝试的第一件事,执行查询时它总是给我一个“资源不可用”的错误。
-
听起来更像是库问题而不是您的代码,但我猜 - 抱歉
-
您确定要您的用户定义 ID 吗?我会选择
POST和数据库生成的 ID。 -
此时生成方法无关紧要,这仅适用于大学作业