Swagger
开源文档
https://swagger.io/docs/open-source-tools/swagger-editor/
Maven
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
配置界面
3.0
http://localhost:8080/swagger-ui/index.html
3.0以下
// 左侧红框对应配置
private ApiInfo apiInfo()
{
// 首页信息
ApiInfo apiInfo = new ApiInfo(
"Swagger api 文档",
"Swagger",
"1.0",
"urn:tos",
new Contact("若凌","","****@qq.com"), // 作者信息
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
return apiInfo;
}
右侧红框对应配置文件中的groupName!
springboot配置文件
application.yml
# 是否开启swagger
swagger:
enabled: true
SwaggerConfig
@Configuration
public class SwaggerConfig {
/** 是否开启swagger */
@Value("${swagger.enabled}")
private boolean enabled;
@Bean
public Docket docket1(Environment environment)
{
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.groupName("docket1")
/**
* 是否启动swagger
* true 打开
* false 关闭
*/
.enable(enabled)
.select()
/**
* 扫描
*
* 指定扫描包
* .apis(RequestHandlerSelectors.basePackage("com.rao.controller"))
* any() 扫描全部
* .apis(RequestHandlerSelectors.any())
* none() 都不扫描
* .apis(RequestHandlerSelectors.none())
* withClassAnnotation() 扫描方法上的注解类
* .apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
* withMethodAnnotation() 扫描类上的注解类
* .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
*/
.apis(RequestHandlerSelectors.basePackage("com.rao.controller"))
/**
* 过滤
*
* 排除/rao/**的类
* .paths(PathSelectors.ant("/rao/**"))
*/
.paths(PathSelectors.ant("/rao/**"))
.build();
}
@Bean
public Docket docket2(Environment environment)
{
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.groupName("docket2")
/**
* 是否启动swagger
* true 打开
* false 关闭
*/
.enable(enabled)
.select()
/**
* 扫描
*
* 指定扫描包
* .apis(RequestHandlerSelectors.basePackage("com.rao.controller"))
* any() 扫描全部
* .apis(RequestHandlerSelectors.any())
* none() 都不扫描
* .apis(RequestHandlerSelectors.none())
* withClassAnnotation() 扫描方法上的注解类
* .apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
* withMethodAnnotation() 扫描类上的注解类
* .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
*/
.apis(RequestHandlerSelectors.basePackage("com.rao.controller"))
/**
* 过滤
*
* 排除/rao/**的类
* .paths(PathSelectors.ant("/rao/**"))
*/
.paths(PathSelectors.ant("/rao/**"))
.build();
}
@Bean
public Docket docket3(Environment environment)
{
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.groupName("若凌")
/**
* 是否启动swagger
* true 打开
* false 关闭
*/
.enable(enabled)
.select()
/**
* 扫描
*
* 指定扫描包
* .apis(RequestHandlerSelectors.basePackage("com.rao.controller"))
* any() 扫描全部
* .apis(RequestHandlerSelectors.any())
* none() 都不扫描
* .apis(RequestHandlerSelectors.none())
* withClassAnnotation() 扫描方法上的注解类
* .apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
* withMethodAnnotation() 扫描类上的注解类
* .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
*/
.apis(RequestHandlerSelectors.basePackage("com.rao.controller"))
/**
* 过滤
*
* 排除/rao/**的类
* .paths(PathSelectors.ant("/rao/**"))
*/
.paths(PathSelectors.ant("/rao/**"))
.build();
}
private ApiInfo apiInfo()
{
// 首页信息
ApiInfo apiInfo = new ApiInfo(
"Swagger api 文档",
"Swagger",
"1.0",
"urn:tos",
new Contact("若凌","","123456@qq.com"), // 作者信息
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
return apiInfo;
}
}