| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Swagger3的基本使用 -> 正文阅读 |
|
[开发工具]Swagger3的基本使用 |
Swagger3简介swagger官网:传送门 swagger是一个Api框架,就是一个工具,就比如我们可以使用postman测试接口一样,swagger主要作用是生成RESTFUL接口的文档并且可以提供功能测试; 可以看一下官方文档简介:
大致意思就是通过swagger可以获取项目的api结果,生成清晰的api文档,并可以进行一些自动化测试; 下面我使用一个项目简单示范一下如何使用swagger; 注:该文章介绍的是swagger3的操作,因为swagger3和swagger2有些地方有差异,所以部分操作对swagger2并不适用; 参考:狂神说、Swagger官方文档; Swagger使用首先创建一个springboot项目; 这里使用的maven项目管理工具(Gradle等一样),在pom.xml添加swagger3.0的依赖;
导入依赖包后在启动类上加 @EnableWebMvc 注解,不然会报空指针异常;
然后可以随便写个controller写几个接口(这里是随便用的一个项目演示): 写一个config配置类:
加上 @EnableOpenApi 注解代表启用swagger; 走到这一步这时已经可以开启服务,访问路径:http://localhost:8080/swagger-ui/index.html (本地监听的是8080端口) 因为是Swagger3,所以路径访问和Swagger2不同,这一点一定要注意;可以看一下这个index.html在哪: 访问界面: 当然这里还有这个项目的一些其他controller,这里就用刚才展示的controller示范; 点开可以看到接口基本信息: 可以点开某个接口看看详细信息: 右上角Try it out 就可以发送请求,测试接口; 这就是Swagger的基本使用了,如果想要让文档描述更详细一些,可以在SwaggerConfig类中进行一些配置; Swagger常用配置以下是我接触到的一些配置,并不全面,可以参考; Swagger的实例Bean是Docket对象,可以通过配置Docket实例来配置Swagger;
DocumentationType.OAS_30是Swagger实例的接口文档版本,因为使用的是Swagger3,所以选择用 注意:下面的所有Docket配置都可以添加到一个docket方法中,只是分开介绍了; 文档基本信息配置可以通过Docket的apiInfo属性来对文档进行基本信息的配置:
这里的Docket实例需要关联apiInfo属性,因为apiInfo属性可以配置文档的一些基本信息: 我在这里简单配置一下:
可以看到展示效果: 扫描接口配置
重启服务访问: 这时就只有一个controller显示了,所有请求也都是以/category开始的; RequestHandlerSelectors配置扫描路径的一些方法
PathSelectors配置扫描请求的一些方法
开启关闭Swagger配置这个配置人就很简单了,简单演示一下:
该配置再后面用得到;(下面的环境配置就用到了) Swagger开发环境配置在开发中有开发环境、测试环境、发布环境,Swagger文档不应该在有些环境中出现,就比如发布环境,不仅占内存,而且接口信息还容易泄露出去;这里就简单演示一下如何在不同的环境下配置Swagger; application.yml环境配置: 开发环境:
测试环境:
配置开发环境dev和测试环境test显示Swagger文档:
可以自己测试一下,非dev和test环境是无法访问Swagger的,这里就不展示了; API分组Swagger默认是一个default分组: 可以通过分组来实现对不同API的分类,分组可以使用Docket的groupName属性区分不同分组,并可以在Swagger中创建多个Docket的Bean实例来定义不同分组; 配置多个分组:
这里我只配置了两个分组,可以多创建几个Docket实例实现多分组; 分组效果: Category分组: Employee分组: Swagger常见注解下面还有一些常见的Swagger注解,同样是对文档进行补充的:
这些注解只是对文档的一些接口信息的补充,根据实际情况使用; 这里就不一一演示了; 总结Swagger的出现让实际多人协作下的开发效率大大提升,这是工作中常用的工具,所以很有必要了解学习;希望大家都能有所收获; |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/14 14:59:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |