文章目录
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方法,这时,我们就可以将
替换成
简化书写

 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";
    }
}
运行一下
 
 
 看控制台输出
 
3. RESTful风格总结











