集成 Swagger springboot 接口API插件
Swagger介绍1.什么是Swagger作为后端程序开发 , 我们多多少少写过几个后台接口项目 , 不管是编写手机端接口 , 还是目前比较火热的前后端分离项目 , 前端与后端都是由不同的工程师进行开发 , 那么这之间的沟通交流通过接口文档进行连接 。 但往往伴随很多问题 , 后端程序员认为编写接口文档及维护太花费时间精力 , 前端的认为接口文档变动更新不及时 , 导致程序之间相互调用出行问题 。 那么能简化接口文档的编写直接自动生成吗?当然能!如是乎Swagger这种接口文档在线自动生成工具便孕育而生 。
Swagger 是一个规范和完整的框架 , 用于生成、描述、调用和可视化 RESTful 风格的 Web 服务 。 总体目标是使客户端和文件系统作为服务器以同样的速度来更新 。 文件的方法 , 参数和模型紧密集成到服务器端的代码 , 允许API来始终保持同步 。 Swagger 让部署管理和使用功能强大的API从未如此简单 。
2.Swagger优点
- 代码变 , 文档变 。 只需要少量的注解 , Swagger 就可以根据代码自动生成 API 文档 , 很好的保证了文档的时效性 。
- 跨语言性 , 支持 40 多种语言 。
- Swagger UI 呈现出来的是一份可交互式的 API 文档 , 我们可以直接在文档页面尝试 API 的调用 , 省去了准备复杂的调用参数的过程 。
- 还可以将文档规范导入相关的工具(例如 Postman、SoapUI), 这些工具将会为我们自动地创建自动化测试 。
io.springfox springfox-boot-starter3.0.0
编写一个用于测试的controller// java源码大全 www.1b23.com@RestControllerpublic class HelloController {@PostMapping(value = "http://kandian.youth.cn/hello")public String hello(){return "hello";}}
编写Swagger的配置类@Configuration@EnableOpenApipublic class SwaggerConfig {}
运行启动输入地址:http://localhost:8080/swagger-ui/index.html可以看到Swagger接口文档页面 , 说明基本配置环境成功!
文章插图
注意事项:Swagger3.0版本的地址是http://localhost:8088/swagger-ui/index.html , 2.x版本中访问的地址的为http://localhost:8088/swagger-ui.html
2.配置Swagger配置Swagger首先需要构建其Bean实例 Docket对象 , 在刚刚创建的SwaggerConfig 配置类中创建一个Docket
// java源码大全 www.1b23.com@Beanpublic Docket docket(){return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo());}
Docket(DocumentationType.OAS_30) ,我们这里选择的参数是 DocumentationType.OAS_30,这是一个Swagger实例的接口文档版本 , 我们这里是3.0 , 所以选择用 OAS_30 , 其他的类型还有如下几种 , 分别对应着Swagger历史版本 public static final DocumentationType SWAGGER_12 = new DocumentationType("swagger", "1.2");public static final DocumentationType SWAGGER_2 = new DocumentationType("swagger", "2.0");public static final DocumentationType OAS_30 = new DocumentationType("openApi", "3.0");
构建Docket需要创建 ApiInfo 实例// java源码大全 www.1b23.comprivate ApiInfo apiInfo(){// 作者信息Contact contact = new Contact("TIOXY", "", "1369773052@qq.com");return new ApiInfo("Tioxy的接口文档","项目描述","1.0","",contact,"Apache 2.0","",new ArrayList());}
ApiInfo 主要作用是构建我们接口文档的页面显示的基础信息 , 展示如下位置文章插图
3.配置扫描接口及开关构建Docket时通过 select() 方法配置扫描接口 。 Docket的完整代码如下:
// java源码大全 www.1b23.com@Beanpublic Docket docket(Environment environment){// 设置显示的Swagger环境Profiles dev = Profiles.of("dev");// 获取项目环境boolean flag = environment.acceptsProfiles(dev);return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo())// 配置Api文档分组.groupName("TIOXY")// enable()是否启用Swagger , 默认是true.enable(flag).select()// RequestHandlerSelectors,配置要扫描接口的方式// basePackage指定要扫描的包// any()扫描所有 , 项目中的所有接口都会被扫描到// none()不扫描// withClassAnnotation()扫描类上的注解// withMethodAnnotation()扫描方法上的注解.apis(RequestHandlerSelectors.basePackage("com.tioxy.controller"))// paths()过滤某个路径.paths(PathSelectors.any()).build();}
- groupName("TIOXY"):表示此Docket实例的名字 , 也就是接口文档页面右上角选择的实例名 , 实际开发中我们是多人开发 , 对应的就是多个Docket实例
- 联盟|天津半导体集成电路人才联盟成立
- 科技|万业企业控股孙公司北京凯世通拟向芯成科技出售3款集成电路设备
- 软件|山西出台政策奖励集成电路和软件企业
- 高通发布骁龙888芯片,集成X60 5G芯片
- 高通骁龙888正式发布 首发Cortex X1架构集成5G基带
- SpringBoot+MyBatis+MySQL读写分离实现
- SpringBoot构造流程源码分析:Web应用类型推断
- 搭建私有Sentry日志收集系统并集成到springboot
- 你喜欢的 Go 第三方库:一步为系统集成可视化实时运行时统计
- 集成式|多模块集成式工具 燚博云提升薪管效率