Swagger2集成Spring Boot中+使用knife4j接口文档增强
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 注解的参数组成的请求参数列表