SpringMVC之RESTful
Restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存机制等。
Restful风格的请求是使用“url+请求方式”表示一次请求目的的,HTTP 协议里面四个表示操作方式的动词如下:
GET:读取(Read)
POST:新建(Create)
PUT:更新(Update)
DELETE:删除(Delete)
客户端请求 | 原来风格URL地址 | RESTful风格URL地址 |
---|---|---|
查询所有 | /user/findAll | GET /user |
根据ID查询 | /user/findById?id=1 | GET /user/{1} |
新增 | /user/save | POST /user |
修改 | /user/update | PUT /user |
删除 | /user/delete?id=1 | DELETE /user/{1} |
代码实现
@PathVariable
用来接收RESTful风格请求地址中占位符的值
@RestController
RESTful风格多用于前后端分离项目开发,前端通过ajax与服务器进行异步交互,我们处理器通常返回的是json数据所以使用@RestController来替代@Controller和@ResponseBody两个注解。
//@Controller
@RestController //组合注解:@Controller + @ResponseBody
@RequestMapping("/restful")
public class RestfulController {
// @RequestMapping(value = "/user/{id}",method = RequestMethod.GET)
// @ResponseBody
@GetMapping("/user/{id}") //相当于@RequestMapping(value = "/user/{id}",method = RequestMethod.GET)
public String findById(@PathVariable Integer id){
return "findById: " + id;
}
@PostMapping("/user")
public String post(){
return "post";
}
@PutMapping("/user")
public String put(){
return "put";
}
@DeleteMapping("/user/{id}")
public String delete(@PathVariable Integer id){
return "delete: " + id;
}
}