1.导入pom依赖
springfox-swagger2
2.9.2
knife4j-spring-boot-starter
2.0.2
2.添加swagger配置类
package ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ;
import ..EnableSwagger2;
import ;
/**
*
* swagger页面展示的配置
*
*
* @author Toby
* @since 2020/5/13
*/
@Configuration
@EnableSwagger2
@EnableKnife4j
public class Swagger2Configuration {
@Bean
public Docket createRestApi() {
HashSet contentType = new HashSet<>(1);
("application/json");
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.consumes(contentType)
.produces(contentType)
.select()
// 扫描包路径
.apis((""))
.paths(())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("xxx-api文档")
.description("xxx-xx模块api文档")
.version("1.0")
.contact(new Contact("xxx项目组","","[email protected]"))
.build();
}
}
注:basePackage要改为项目对应的controller目录路径,使用增强功能的话,需要在配置类上加@EnableKnife4j注解,并且在UI界面的个性化设置中开启增强功能。具体增强功能请移步至最后自行查看文档。
3.查看UI界面
启动项目后,在浏览器输入http://${host}??{port}/
4.项目中可能会用到的增强功能
自定义文档
在resource目录下新建markdown文件夹,在目录下新建.md结尾的file即可。在中加入以下配置
knife4j:
markdowns: classpath:markdown/*
注意:自定义文档说明必须以.md结尾的文件,其他格式文件会被忽略
访问权限控制-生产环境屏蔽Swagger所有资源接口
之前的项目如果想在正式环境配置中屏蔽Swagger资源的话,是取的运行环境作判断,现在只需要在正式的中加入以下配置即可。
knife4j:
production: true
访问页面加权控制
登录需要账号密码,提供简单的basic认证功能,在中加入以下配置即可。
knife4j:
## 开启Swagger的Basic认证功能,默认是false
basic:
enable: true
## Basic认证用户名
username: admin
## Basic认证密码
password: 123456
4.注意事项
依赖变更
ui前端界面显示的依赖更改,下的springfox-swagger-ui最终版本为1.9.6,之后版本包名更改为knife4j,不同框架集成方式的pom依赖自行查看原文文档。
api分组相关,Docket实例不能延迟加载(目前应该用不到,具体多少个算多也不清楚,知道即可。)
springfox默认会把所有api分成一组,这样访问时会在同一个页面里加载所有api列表。这样,如果系统稍大一点,api稍微多一点,页面就会出现假死的情况,所以很有必要对api进行分组。api分组,定义多个RestApi即可,通过groupName作区分。
5.文档地址
原文:/tobyhomels/p/