RESTFUL风格
什么是RESTFUL风格?
1、比如说我们从前学习过的URL传参:localhost:8080/method?add=1&add=2&add=3&add=4
是使用&符号将要传的参数连接
2、而RESTFUL风格是以斜线风格的:localhost:8080/method/add/1/2/3/4
是使用\将要请求的参数连接,RESTFUL风格基本上所有的网站都在用
RESTFUL就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更有益于实现缓存等机制
功能:
- 资源:互联网所有事物都可以抽象为资源
- 资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作
- 分别对应添加、删除、修改、查询
传统方式操作资源:通过不同参数实现不同的效果!方法单一,POST和GET
http://127.0.0.1/item/queryItem.action?id=1 查询,GET
http://127.0.0.1/item/saveItem.action 新增,POST
http://127.0.0.1/item/updateItem.action 更新,POST
http://127.0.0.1/item/deleteItem.action 删除,GET或POST
使用RESTFUL风格操作资源:可以通过不同的请求方式完成不同的效果!如下:请求地址一样,但是功能可以不同!
http://127.0.0.1/item/1 查询,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT
http://127.0.0.1/item/1删除,DELETE
实现:
1.输入网址:http://localhost:8080/add/1/10
可以成功访问输出1和10的和11
2.如果把Controller中b的类型改为String类型,res也改为String类型
输入网址:http://localhost:8080/add/1/*qinjiang*
可以得到res字符串:1*qinjiang*
那么是从相同的网址是如何区分不同的操作呢?
如下图RequestMapping类:
而如上图鼠标定位的RequestMethod,我们可以在Controller定义GET方法
value可以替换成path,是一样的。
输入网址:http://localhost:8080/add/1/2
输出:结果为12
方法级别的注解变体有以下几个,组合注解
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
使用RESTFUL风格有什么好处?
简洁、高效、安全。
- 使路径变得更加简洁。
- 获得参数更加方便,框架会自动进行类型转换。
- 通过路径变量的类型可以约束访问参数,如果类型不一样,则访问不到对应的请求方法,如这里访问的路径是/commit/1/a,则路径与方法不匹配。而不会是参数转换失败。