Swagger
首先我们需要了解swagger
- 面向所有人的API开发
- 借助Swagger开源和专业工具集,为用户,团队和企业简化API开发
- 号称世界上最好的API框架
- RestFul API文档在线自动生成=》API文档与API定义同步更新
- 直接运行,可以在线测试API接口;
- 支持多种语言,如:java,php…
- 在项目中使用swagger需要springbox
- swagger2
- UI
1、SpringBoot集成Swagger
1、maven依赖
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2、配置Swagger swaggerconfig
- 新建swagger包
- 新建SwaggerConfig
@Configuration
@EnableSwagger2//开启Swagger2
public class SwaggerConfig {
}
3、跑一下
localhost:8080/swagger-ui.html
2、配置Swagger
Swagger的bean实例Docket;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
//配置了Swagger的Docket的bean实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_12)
.apiInfo(apiInfo());
}
//配置swagger的信息 = apiinfo
private ApiInfo apiInfo(){
//作者信息
Contact contact = new Contact("满世繁华", "https://blog.csdn.net/qq_34037264", "[email protected]");
return new ApiInfo(
"繁华的Swagger API文档",
"好好学习 天天向上",
"1.0",
"https://blog.csdn.net/qq_34037264",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList<VendorExtension>());
}
}
3、配置swagger扫描接口
Docket().select();
//配置了Swagger的Docket的bean实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_12)
.apiInfo(apiInfo())
.select()
//RequestHandlerSelectors , 配置扫描接口的方式
//basepackage:指定要扫描的包
//any():全部扫描
//none():不扫描
//withClassAnnotation():扫描类上的注解,参数是一个注解的反射对象
//withMethodAnnotation():扫描方法上的注解
.apis(RequestHandlerSelectors.any())
//paths():过滤什么路径
//.paths(PathSelectors.ant("msfh/**"))
.build()
;
}
4、配置是否启动swagger
//配置了Swagger的Docket的bean实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_12)
.apiInfo(apiInfo())
.enable(true)//enable是否启用swagger ,如果为false , 则swagger不能再浏览器中访问
.select()
//RequestHandlerSelectors , 配置扫描接口的方式
//basepackage:指定要扫描的包
//any():全部扫描
//none():不扫描
//withClassAnnotation():扫描类上的注解,参数是一个注解的反射对象
//withMethodAnnotation():扫描方法上的注解
.apis(RequestHandlerSelectors.any())
//paths():过滤什么路径
//.paths(PathSelectors.ant("msfh/**"))
.build()
;
}