将Rest URL中的请求参数转换为对象

时间:2019-04-18 14:46:28

标签: java rest

是否有直接方法将HTTP请求参数转换为对象? (类似于对象映射器)

例如,如果请求http://localhot:8080/users/id=5&name=10 httpHandler()则id = 5&name = 10,则需要将其转换为User对象

public class User {
         int id;
         String name;
         //getters and setters
}

class MyHandler implements HttpHandler {
   @Override
   public void Handle(HttpExchange http) {
   String param = http.get.getRequestURI().getQuery();
   ?? // how to map it to the User Object?
   }
}

2 个答案:

答案 0 :(得分:0)

Spring通过RequestBody注释自动为您完成此操作。

假设您使用JSON请求向URL http://localhost:8080/users/发出HTTP POST请求

{
  id: 1,
  name: "Bob"
}

您可以像这样使用Spring映射此请求:

@POST
@Path("/users")
@Consumes(MediaType.APPLICATION_JSON)
public String users(@RequestBody User user) {
    // Value is "ID: 1, Name: Bob"
    return "ID: " + user.getId() + ", Name: " + user.getName();
}

答案 1 :(得分:0)

如果您使用的是Spring,那么Here是一个很好的例子。您可以使用@GetMapping注释控制器方法,并将DTO对象(具有您所有的请求参数作为成员)传递给方法作为参数。