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()
;
}