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}" ) // …… |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话