rest风格

发布时间 2023-08-10 16:13:08作者: lmcool-

rest风格

表现形式状态转换:访问网络资源的格式

区别

传统

http://localhost/user/getById?id=1
http://localhost/user/saveUser

rest风格:

http://localhost/user/1
http://localhost/user
优点

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

rest风格对资源的操作

描述模块的名称通常使用复数,表示此类资源而非单个资源

查询全部用户信息GET(查询)

http://localhost/users/1

查询指定用户信息GET(查询)

http://localhost/users

添加用户信息POST(新增保存)

http://localhost/users

修改用户信息PUT(修改更新)

http://localhost/users

删除用户信息DELETE(删除)

http://localhost/users/1
RESTful

根据REST风格对资源访问

案例
// Rest模式
@RestController
// 请求路径
@RequestMapping("/users")
public class BookController {
    // 查询操作
	@GetMapping
	public String getById(){
		System.out.println("springboot is running");
		return "springboot is running";
	}
}

设定请求动作

// Rest模式
@RestController
// 请求路径
@RequestMapping("/users")
public class BookController {
    @RequestMapping(method = RequestMethod.POST)
    @ResponseBody
    public String save(){
        System.out.println("rest.POST");
        return "rest.POST";
    }
}

设定请求传参(路径变量)

@DeleteMapping("/{id}")  // value="/users/{id}",method..
public String delete(@PathVariable Integer id){
    System.out.println("rest.delete"+id);
    return "rest.delete";
总结

@RequestBody、@PathVariable、@RequestParam

区别

@RequestParam用于接收ur1地址传参或表单传参

@RequestBody用于接收json数据

@PathVariable用于接收路径参数,使用参数名称描述路径参数

应用

后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较厂

如果发送非json格式数据,选用@RequestParam接收请求参数

采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值

简化
@RestController  // Rest模式;包含@Controller和@ResponseBody
@RequestMapping("/users")  // 请求路径
public class BookController {
	@PostMapping //@RequestMapping(method = RequestMethod.POST)
    public String save(){
        System.out.println("rest.POST");
        return "rest.POST";
    }
    
    @DeleteMapping("/{id}")
    public String delete(@PathVariable Integer id){
        System.out.println("rest.delete"+id);
        return "rest.delete";
    }
}