3、RestFull风格【URL】

 


RestFull设计风格

一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

URL定义

资源:互联网所有的事物都可以被抽象为资源 
资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。 
分别对应 添加、 删除、修改、查询。 

传统方式操作资源 

http://127.0.0.1/item/queryUser.action?id=1   查询,GET 
http://127.0.0.1/item/saveUser.action             新增,POST 
http://127.0.0.1/item/updateUser.action          更新,POST 
http://127.0.0.1/item/deleteUser.action?id=1  删除,GET或POST

请求方式

可以通过 GET、 POST、 PUT、 PATCH、 DELETE 等方式对服务端的资源进行操作。

其中,GET 用于查询资源,POST 用于创建资源,PUT 用于更新服务端的资源的全部信息,PATCH 用于更新服务端的资源的部分信息,DELETE 用于删除服务端的资源。

这里使用“用户”的案例进行回顾通过 GET、 POST、 PUT、 PATCH、 DELETE 等方式对服务端的资源进行操作。

使用RestFull操作资源 

【GET】 /users # 查询用户信息列表

【GET】 /users/1001 # 查看某个用户信息

【POST】 /users # 新建用户信息

【PUT】 /users/1001 # 更新用户信息(全部字段)

【PATCH】 /users/1001 # 更新用户信息(部分字段)

【DELETE】 /users/1001 # 删除用户信息

普通方式跟RestFull方式URL传参举例:

获取两个数相加的之和,对于普通的URL请求与RestFull请求的区别:

普通URL请求传参方式:

1     @RequestMapping("/rest")
2     public String RestFull(int a, int b, Model model) {
3         int sum = a + b;
4         model.addAttribute("msg", "结果为:" + sum);
5         return "hello";
6     }

 

 RestFull传参方式:

@PathVarable:表示路径变量

1     @RequestMapping("/rest/{a}/{b}")
2     public String RestFull(@PathVariable int a, @PathVariable int b, Model model) {
3         int sum = a + b;
4         model.addAttribute("msg", "结果为:" + sum);
5         return "hello";
6     }

通过指定的提交方式去实现:

指定提交方式:(掌握)

  @RequestMapping(value = "/rest/{a}/{b}",method = RequestMethod.GET)

等于上面的:

  @RequestMapping("/rest/{a}/{b}")

或者也可以直接写成:

  @GetMapping("/rest/{a}/{b}")

上面的三个注解的功能是一样的!

 

跟GetMapper一样的还有其他类似注解:

1
2
3
4
5
@GetMapping("/rest/{a}/{b}")
@PostMapping("/rest/{a}/{b}")
@DeleteMapping("/rest/{a}/{b}")
@PutMapping("/rest/{a}/{b}")
// ……


posted @   Java小白的搬砖路  阅读(358)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示