👨🎓作者:Java学术趴 🏦仓库:Github、Gitee ✏️博客:CSDN、掘金、InfoQ、云+社区 💌公众号:Java学术趴 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。
☠️每日毒鸡汤:这个社会是存在不公平的,不要抱怨,因为没有用!人总是在反省中进步的!
👋大家好!我是你们的老朋友Java学术趴。今天给大家分享一波自动生成API文档的工具,就是Swagger,人们亲切的叫他丝袜哥。哈哈哈哈,开玩笑的啦,小编给大家提供了一个工具类,这个工具类可以直接复制粘贴进行使用哦
Swagger(丝袜哥)是一个简单但功能强大的API表达工具。它具有地球上最大的API工具生态系统,数以千万的开发人员使用,几乎所有的现代编程语言,都支持和使用Swagger。使用Swagger生成API,我们可以得到交互式文档,自动生成代码的SDK以及API发新特性。
前后端分离项目,接口文档的存在是十分重要的。与手动编写的接口不同,swagger是一个自动生成接口文档的工具,在需求不断变更的环境下,手动编写文档的效率太低。与swagger2相比新版的swagger3配置更少,使用更方便。
Swagger3配置类文件:Swagger3Config
package cn.gyyx.config;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
/**
* @description:
* @author: Pengdehua
* @time: 2021/8/10 14:06
*/
@Configuration
public class Swagger3Config {
/**
* 配置Swagger3。这些信息都会显示在这个Swagger3的前端页面上
* @return
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.OAS_30) // 指定Swagger版本为3
// 该Swagger3的信息,调用的是下边定义的信息方法
.apiInfo(apiInfo())
// 指定负责该 Swagger3 的小组。每个小组都需要有自己的 createRestApi() 以及 apiInfo(),所以说当有多个组是会有很多套
.groupName("Java一组")
// 开发环境用到Swagger,正式环境一般进行关闭 true/false(开关)
// .enable(false)
// 接下来是过滤(指定哪些方法需要存在接口文档信息):过滤之前必须给定 .select()
.select()
// 根据带有注解的方法过滤。存在@ApiOperation注解的方法保存接口描述信息。参数是一个类名,这里使用类自带的class属性获取类名
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
// 根据路径信息过滤。any()代表所有的路径都保存接口信息。还可以使用 PathSelectors.ant("路径信息") 指定特定的接口
.paths(PathSelectors.any())
// 过滤之后最后必须存在一个 build(),表示构建完成
.build();
}
/**
* 如果不配置会使用源码中默认的,一般我们都在这里进行覆盖重写
* 配置该Swagger3的Api信息
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 该Swagger3的Api文档题目
.title("第四版监控")
// 该Swagger3的Api文档描述
.description("第四版监控 - 接口管理")
// 该Swagger3的Api文档联系方式(固定格式)
.contact(new Contact("彭德华", "", "pengdehua@gyyx.cn"))
// Swagger3的版本
.version("1.0")
// 最后需要使用build结尾,代表构建完成
.build();
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。