RestFul风格
概念
Restful就是一种资源定位以及资源操作的风格,不是标准也不是协议。基于这种风格设计的软件可以更简洁,更有层次,更易于实现缓存机制;
功能
- 资源:互联网所有的事物都可以被抽象为资源
- 资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作;
- 分别对应CRUD
传统方法操作资源:通过不同的参数来实现不同的效果
使用Restful操作资源:可以通过不同的请求方式来实现不同的效果。如下,请求地址一样,但是功能不同!
- http://localhost/item/1 查询,GET
- http://localhost/item/ 新增,POST
- http://localhost/item/ 更新,PUT
- http://localhost/item/1 删除,DELETE
学习测试
-
新建一个类 RestfulController
@Controller public class RestfulController { //原来的:http://localhost:8080/add?a=1&b=2 //Restul:http://localhost:8080/add/a/b // @RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.DELETE) @GetMapping("/add/{a}/{b}") public String test1(@PathVariable int a,@PathVariable int b, Model model){ int res = a + b; model.addAttribute("msg","结果为"+res); return "test"; } }
-
在SpringMVC中可以使用@PathVariable注解,让方法的参数的值对应绑定到一个URL模板变量上。
-
测试请求
思考:使用路径变量的好处
- 简洁
- 获得参数更加方便,框架会自动进行类型转换
- 通过路径变量的类型可以约束访问参数
使用method属性指定请求类型
用于约束请求的类型,可以收窄请求范围。
小结:
所有地址栏请求默认都会是HTTP GET类型的。
方法级别的注解变量有如下:
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
小黄鸭调试法
我向我解释一遍代码执行流程。