【Java全栈学习】四、RESTful服务+Swagger
目录
RESTful服务
RESTful介绍
RESTful是一种软件服务架构设计风格
RESTful特点
例如,将请求清晰分类,GET用于获取,POST用于新建,等等等等
- 每一个URI代表一种资源。
- 客户端使用GET、POST、PUT、DELETE四种表示操作方式的动词对服务端资源进行操作:GET用于获取资源,POST用于新建资源(也可以用于更新资源),PUT用于更新资源,DELETE用于删除资源。
- 通过操作资源的表现形式来实现服务端请求操作。
- 资源的表现形式是JSON或者HTML。
- 客户端与服务端之间的交互在请求之间是无状态的。从客户端到服务端的每个请求都包含必需的信息。
RESTful API(符合此架构接口的必备特质)
符合RESTful规范的Web API需要具备如下两个关键特性:
- 安全性:安全的方法被期望不会产生任何副作用。当我们使用GET操作获取资源时。不会引起资源本身的改变,也不会引起服务器状态的改变。
- 幂等性:幂等的方法保证了重复进行一个请求和一次清求的效果相同(并不是指响应总是相同的,而是指服务器上资源的状态从第一次请求后就不再改变了),在数学上幂等性是指N次变换和一次变换相同。
在做BS架构程序时,想要符合RESTful风格,对应几种请求方法即可
实际编程时如何实现RESTful风格:
- Spring Boot提供的spring-boot-starter-web组件完全支持开发RESTful API,提供了与REST操作方式(GET.POST、PUT、DELETE)对应的注解:
- GetMapping:处理GET请求,获取资源。
- PostMapping:处理POST请求,新增资源。
- putMapping:处理PUT请求,更新资源。
- DeleteMapping:处理DELETE请求,删除资源。
- PatchMapping:处理PATCH请求,用于部分更新资源。
- URL中不要包含动词(传统的比如删除用户操作为http://xxx/del?id=10,但是RESTful需要delete http://xxx/user/10) 示例:(RESTful增删改查)(加**{}意味其为动态**,需要加入PathVariable注解)
实操
全部代码如下
|
|
Swagger
Java内提供的测试工具 通过Swagger动态生成web接口文档(方便前端使用),也可以进行端口测试
配置
- 在pom.xml加入依赖↓
|
|
警告
Spring Boot 2.6.X后与Swagger有版本冲突问题,需要在application.properties中加入以下配置:
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
- 然后做一个基本的配置↓(在config下创建一个SwaggerConfig配置类)
|
|
使用Swagger2进行接口测试
启动项目访问 http://127.0.0.1:8080/swagger-ui.html
,即可打开自动生成的可视化测试页面
警告
本文最后更新于 December 20, 2023,文中内容可能已过时,请谨慎使用。若内容或图片失效,请留言反馈。部分素材来自网络,如不慎触及您的利益,请联系删除。