任何简化此 POST 的提示? (Java)

Any hint to simplify this POST? (Java)

我在 Jax-RS 中实现了这个 POST 操作,它工作正常,但我确信我可以通过其他方式发送正文。任何简化它的提示? (例如通过接收对象?

谢谢!

@POST
@Path("updateUser/{name}/{surname}/{address}")
@Produces(MediaType.TEXT_PLAIN)
public Response updateUser(@FormParam("user") String name,
          @FormParam("surname") String surname,
          @FormParam("address") String address) throws UnknownHostException {
          User user;
          user = new CorporateUser(name, surname, address); 
          usersService.updateUser(user);
          return Response.ok(user).build();
}

您可以使用@consumes 注释传递json 对象字符串。

  @POST
  @Path("/updateUser")
  @Consumes(MediaType.APPLICATION_JSON)
  @Produces(MediaType.TEXT_PLAIN)
  public Response updateUser(User bean) {
    usersService.updateUser(user);
          return Response.ok(user).build();
  }

向您的项目添加 JSON 提供商,例如 Jackson

@POST
@Path("updateUser")
@Consumes(value = { MediaType.APPLICATION_JSON })
@Produces(value = { MediaType.APPLICATION_JSON })
public Response updateUser(NewCorporateUserRequest req) throws UnknownHostException {
      User user;
      user = new CorporateUser(req.getName(), req.getSurname(), req.getAddress()); 
      usersService.updateUser(user);
      return Response.ok().entity(user).type(MediaType.APPLICATION_JSON).build();
}

public class NewCorporateUserRequest implements java.io.Serializable {

    private String name;
    private String surname;
    private String address;

    ... Getters and Setters.

}