一、什么是 Rest 风格的 URL 请求?
Rest 风格的一大特征就是:使用 HTTP 请求方式动词来表示对资源的操作。
以前只使用 Get / Post 请求,不同业务有不同的接口地址。
例如:
- /getUser - 获取用户
- /editUser - 修改用户
- /addUser - 新增用户
- /deleteUser - 删除用户
Rest 风格使用不同的请求类型来区分不同的业务接口,但接口地址相同。
例如:
- /user - GET 请求 - 获取用户
- /user - DELETE 请求 - 删除用户
- /user - PUT 请求 - 修改用户
- /user - POST 请求 - 保存用户
二、Rest风格使用与原理
2.1、几个常用的注解
@RequestMapping
value 是 path 的别名,因此用哪个都一样。path/value 和 method 都支持数组。
样例:
@RequestMapping(path = "/user", method = RequestMethod.GET)
@RequestMapping(value = "/user", method = {RequestMethod.GET, RequestMethod.POST})
@RequestMapping(value = {"/user", "/user1", "/user2"}, method = RequestMethod.GET)
@GetMapping
GetMapping 注解已经默认封装了@RequestMapping(method = RequestMethod.GET),所以,比前文使用 @RequestMapping(path = “/user”,method = RequestMethod.GET) 更方便。
@GetMapping(path = '/user')
//等价与
@RequestMapping(path = "/user", method = RequestMethod.GET)
@PostMapping
PostMapping 注解已经默认封装了 @RequestMapping(method = RequestMethod.POST)
@PostMapping(path = '/user')
//等价与
@RequestMapping(path = "/user", method = RequestMethod.POST)
@PutMapping
PutMapping 注解已经默认封装了 @RequestMapping(method = RequestMethod.PUT)
@PutMapping(path = '/user')
//等价与
@RequestMapping(path = "/user", method = RequestMethod.PUT)
@DeleteMapping
DeleteMapping 注解已经默认封装了@RequestMapping(method = RequestMethod.Delete)
@DeleteMapping(path = '/user')
//等价与
@RequestMapping(path = "/user", method = RequestMethod.DELETE)
使用方法概览
@RequestMapping(path = "/user", method = RequestMethod.GET)
public String getUser() {
return "GET-张三";
}
@RequestMapping(path = "/user", method = RequestMethod.POST)
public String saveUser() {
return "POST-张三";
}
@RequestMapping(path = "/user", method = RequestMethod.PUT)
public String putUser() {
return "PUT-张三";
}
@RequestMapping(path = "/user", method = RequestMethod.DELETE)
public String deleteUser() {
return "DELETE-张三";
}
分别使用 Get/Post/Put/Delete 类型请求 /user ,即可得到不同的结果。
前后端耦合适配
由于早期项目并没有采用前后端分离的架构,请求由 html 的