Swagger2集成Spring Boot中+使用knife4j接口文檔增強
一·導入依賴Swagger2和knife4j的依賴
<!-- knife4j接口文檔 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.xiaoymin/knife4j-spring-boot-starter -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
二·添加SwaggerConfiguration作為Swagger2的配置類
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @類名: SwaggerConfiguration
* @包名: com.blogs.web.blogsweb.config
* @IDE的名稱: IntelliJ IDEA
* @當前項目的名稱: blogsweb
* @作者: YangMian
* @時間: 2020/5/12 14:31
* @版本: 1.0.0
* <p>說明: </p>
*/
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class SwaggerConfiguration {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2) // 選擇swagger2版本
.apiInfo(apiInfo()) //定義api文檔匯總信息
.select()
.apis(RequestHandlerSelectors
.basePackage("com.blogsweb.web.blogsweb.web")) // 指定生成api文檔的包
.paths(PathSelectors.any()) // 指定所有路徑
.build()
;
}
/**
* 構建文檔api信息
*
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("個人博客") // 文檔標題
.contact(new Contact("Yang.M & JiaJiWei", "http://localhost:8080", "1477699332@qq.com")) //聯系人信息
.description("系統架構采用SpringBoot2.x+shiro+mybatis+redis+jedis+knife4j+vue的基礎框架以及Ftp+Nginx靜態資源服務器") //描述
.version("1.0.1") //文檔版本號
.termsOfServiceUrl("http://localhost:8080") //網站地址
.build();
}
}
三·Swagger2注解詳情
@Api:修飾整個類,描述Controller的作用
@ApiOperation:描述一個類的一個方法,或者說一個接口
@ApiParam:單個參數描述
@ApiModel:用對象來接收參數
@ApiProperty:用對象接收參數時,描述對象的一個字段
@ApiResponse:HTTP響應其中1個描述
@ApiResponses:HTTP響應整體描述
@ApiIgnore:使用該注解忽略這個API
@ApiError :發生錯誤返回的信息
@ApiImplicitParam:描述一個請求參數,可以配置參數的中文含義,還可以給參數設置默認值
@ApiImplicitParams:描述由多個 @ApiImplicitParam 注解的參數組成的請求參數列表