REST风格简介

发布时间 2023-07-28 22:40:46作者: 彼时听风

REST风格的表现形式转化

  • 传统风格资源描述形式

  • REST风格描述形式

  • 优点

    • 隐藏资源的访问行为,无法通过地址得知对资源是何种操作

    • 书写简化

  • 按照REST风格访问资源时使用行为动作区分

  • 步骤

    • @RequestMapping的属性
      1. value(默认): 设置请求访问路径
      2. method:http请求动作,标准动作(GET/POST/PUT/DELETE)
    • 设定http请求动作
      1. @RequestMapping(value = "/users",method = RequestMethod.POST)
      2. @GetMapping @PostMapping @PutMapping @DeleteMapping
    • 设定请求参数
      1. @RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
      2. @GetMapping("/{id}")
      3. @PathVariable 绑定路径参数与形参名
      4. @RequestBody 用于接收JSON数据
      5. @RequestParam 用户接收url地址传参或表单传参
  • 案例

@RestController
@RequestMapping("/users")
public class UserController {
    //@RequestMapping(value = "/users",method = RequestMethod.POST)
    @PostMapping
    public String save(@RequestBody User user){
        System.out.println("user save ..."+ user);
        return "{'module':user save}";
    }

    //@RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
    @DeleteMapping("/{id}")
    public String delete(@PathVariable Integer id){
        System.out.println("user delete ..."+ id);
        return "{'module':user delete}";
    }

    //@RequestMapping(value = "/users",method = RequestMethod.PUT)
    @PutMapping
    public String update(@RequestBody User user){
        System.out.println("user update ..."+ user);
        return "{'module':user update}";
    }

    //@RequestMapping(value = "/users/{id}",method = RequestMethod.GET)
    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("user getById ..."+ id);
        return "{'module':user getById}";
    }

    //@RequestMapping(value = "/users",method = RequestMethod.GET)
    @GetMapping
    public String getAll(){
        System.out.println("user getAll ...");
        return "{'module':user getAll}";
    }
}