Swagger2集成Spring Boot中+使用knife4j接口文档增强


Swagger2集成Spring Boot中+使用knife4j接口文档增强

一·导入依赖Swagger2和knife4j的依赖




    io.springfox
    springfox-swagger2
    2.6.1



    com.github.xiaoymin
    knife4j-spring-boot-starter
    2.0.2

二·添加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
 * 

说明:

*/ @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 注解的参数组成的请求参数列表