SpringBoot集成Swagger2.x版本

SpringBoot集成Swagger2.x版本

一、pom文件导入依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

二、编写SwaggerConfig文件

注:要注意@Configuration注解,不写@Configuration注解Spring就管理不到该对象

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@Configuration
@ConditionalOnProperty(prefix = "swagger", value = {"enable"}, havingValue = "true")
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com"))//扫描com路径下的api文档
                .paths(PathSelectors.any())//路径判断
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("demo")//标题
                .description("demoAPI接口文档")//描述
                .version("0.0.0")//版本号
                .build();
    }使用注解

Swagger常用注解

  1. @Api
    1. 功能:描述controller类
    2. 注解位置:类
    3. 常用注解属性
      1. tags = "" // 描述此controller类
    4. @ApiOperation
      1. 功能:描述一个方法或者一个API接口
      2. 注解位置:方法
      3. 常用注解属性
        1. value = "" // 描述方法
        2. notes = "" // 描述方法详细信息
    5. @ApiImplicitParam
      1. 功能:描述方法或接口参数
      2. 注解位置: 方法
      3. 注解属性
        1. name = "" // 方法或接口的形参, 注意要与方法的参数名称相同
        2. value = "" // 对参数的描述
        3. paramType = "" // 参数传递方式,此属性的可选值 ["header", "query", "path", "body", "form"]
          1. header,使用@RequestHeader获取的参数
          2. query,使用@RequestParam获取的参数,常用于GET请求
          3. path,使用@PathVariable获取的参数
          4. body,使用@RequestBody获取的参数,常用于POST请求,对象参数
        4. dataType = "" // 参数类型,例如 string, int, ArrayList, POJO类
    6. @ApiImplicitParams
      1. 功能:汇集多个参数
      2. 注解位置: 方法
      3. 注解属性
        1. @ApiImplicitParam组成的列表

欢迎关注作者公众号

原文地址:https://www.cnblogs.com/zhanqing/p/swagger2.html