目录
一.GET获取路径参数
RestFul风格的接口的参数是在请求路径上的。类似的:/user/1 这里的1就是id
如果我们想获取这种风格的数据,可以使用@PathVariable来实现
示范一
要求这个ResuFu风格的接口,该接口可以根据id查询用户。测试接口: http://localhost:8080/user/user/10
@RequestMapping(value = "/user/{id}",method = RequestMethod.GET)
@ResponseBody
public String findUserById(@PathVariable("id") Integer id){
System.out.println("id="+ id);
return "hello";
}
示范二
如果这个接口想根据id和username查询用户。 测试接口: http://localhost:8080/user/user/10/张三
@RequestMapping(value = "/user/{id}/{username}",method = RequestMethod.GET)
@ResponseBody
public String findUserById(@PathVariable("id") Integer id,@PathVariable("username") String username){
System.out.println("id="+ id);
System.out.println("username="+ username);
return "hello";
}
如果我们想要接收对象类型的数据或者集合,则需要采用非RestFul风格
案例一:接收对象类型的数据
@RequestMapping(value = "/users",method = RequestMethod.GET)
@ResponseBody
public User findUserById(User user){
System.out.println(user.toString());
return user;
}
案例二:接收List集合
案例三:接收Map集合
//这个地方需要加上@RequestBody
@RequestMapping(value = "/users",method = RequestMethod.GET)
@ResponseBody
public Map<String,Integer> findUserById(@RequestBody Map<String,Integer> map){
return map;
}
二.POST获取路径参数
示范一:直接获取数据
/**
* 直接获取数据
* @return
*/
@PostMapping("/getForm")
public void getForm(String name,int age) {
System.out.println("name="+name + " " + "age=" + age);
}
示范二:用对象获取Json
/**
* 用对象获取Json
* @return
*/
@PostMapping("/getObjectJson")
public void getObjectJson(@RequestBody User user) {
System.out.println(user.toString());
}
示范三:获取List
/**
* 获取List
* @return
*/
@PostMapping("/getList")
public void getList(@RequestBody List<User> users) {
System.out.println(users.toString());
}
实例四:获取 (Map)数据
/**
* 获取 (Map)数据
* @return
*/
@PostMapping("/getFormByMap")
public void getFormByMap(@RequestBody Map<String, String> map) {
System.out.println(map);
}