1. REST简介
1.1 传统风格与 REST风格描述形式
1.2 RESTful
2. RESTful入门案例
接下来我们使用RESTful风格模拟对用户的增删改查功能
@Controller
@RequestMapping("/users")
public class UserController {
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public User save(@RequestBody User user){
System.out.println("user save..."+ user);
return user;
}
@RequestMapping(value="/{id}",method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable int id){
System.out.println("user delete"+id);
return "delete id";
}
@RequestMapping(value="/{id}", method = RequestMethod.GET)
@ResponseBody
public String getById(@PathVariable int id){
System.out.println("get id:"+id);
return "get id";
}
@RequestMapping(method = RequestMethod.PUT)
@ResponseBody
public String update(@RequestBody User user){
user.setId(1);
user.setName("hello");
System.out.println("update user"+user);
return "update user";
}
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String getAll(){
System.out.println("getAll");
return "getAll";
}
}
分析:
- 首先,@ResponseBody是标志在重定向时候页面不进行跳转,我们可以将每个方法中的@ResponseBody抽取出来,放到UserController类上,然后用@RestController替换@ResponseBody和@Controller。
- 我们可以根据不同的方法使用不同的映射。比如getById方法,是使用GET方法,这时,我们就可以将
@RequestMapping(value=“/{id}”, method = RequestMethod.GET)
替换成
@GetMapping
简化书写
ok,接下来我们看一下修改后的代码
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping
public User save(@RequestBody User user){
System.out.println("user save..."+ user);
return user;
}
@DeleteMapping("/{id}")
public String delete(@PathVariable int id){
System.out.println("user delete"+id);
return "delete id";
}
@GetMapping("/{id}")
public String getById(@PathVariable int id){
System.out.println("get id:"+id);
return "get id";
}
@PutMapping
public String update(@RequestBody User user){
user.setId(1);
user.setName("hello");
System.out.println("update user"+user);
return "update user";
}
@GetMapping
public String getAll(){
System.out.println("getAll");
return "getAll";
}
}
运行一下
看控制台输出