在上篇文章中我们介绍了Spring Boot 整合Swagger3.0的一些基础用法,这篇文章中我们来深入学习一下Swagger3.0 还有其他高级用法。
在日常的开发中,为了减少工作量,我们会遇到一种情况,就是将前端的接口与后端的接口编写到同一个代码中,这样也提高了代码的复用率,减少了重复开发代码的工作量。这个时候我们就需要将接口文档也进行拆分。分为前端接口和后端接口两个部分。
在Swagger3.0中如何进行接口分组呢?
Swagger3.0 接口分组操作
通过之前的例子我们知道,我们往容器中注入一个Docket就是注入了一个文档,其中我们设置了groupName的分组名称。要想注入多个文档,意思就是需要往容器中注入多个Docket。既然是这样,我们就需要修改之前的Swagger的配置文件,将其改为如下的代码。
@EnableOpenApi
@Configuration
@EnableConfigurationProperties(value = {
SwaggerProperties.class})
public class Swagger3Config {
@Autowired
private SwaggerProperties swaggerProperties;
@Bean
public Docket frontApi(){
return new Docket(DocumentationType.OAS_30)
// 是否开启,根据环境配置
.enable(swaggerProperties.getFront().getEnable())
.groupName(swaggerProperties.getFront().getGroupName())
.apiInfo(frontApiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage(swaggerProperties.getFront().getBasePackege()))
.paths(PathSelectors.any())
.build();
}
// 前台API信息
private ApiInfo frontApiInfo(){
return new ApiInfoBuilder()
.title(swaggerProperties.getFront().getTitle())
.description(swaggerProperties.getFront().getDescription())
.version(swaggerProperties.getFront().getVersion())
.contact(
// 添加开发者信息
new Contact(
swaggerProperties.getFront().getContactName(),
swaggerProperties.getFront().getContactUrl(),
swaggerProperties.getFront().getContactEmail())
).build();
}
@Bean
public Docket backApi(){
return new Docket(DocumentationType.OAS_30)
// 是否开启,根据环境配置
.enable(swaggerProperties.getBack().getEnable())
.groupName(swaggerProperties.getBack().getGroupName