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,则路径与方法不匹配。而不会是参数转换失败。
原文地址:https://www.cnblogs.com/yangf428/p/12686886.html