SpringBoot集成swagger2生成接口文档

  • Post author:
  • Post category:其他




1. pom引入jar包

<!--	引入swgger2 自动生成接口文档 staet	-->
		<!-- 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>
		<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.9.2</version>
		</dependency>
		<!--	swgger2 end	-->



2.创建Swagger2Configuration.java


/**
 * swgger2 配置类
 */
@Configuration
@EnableSwagger2
//是否开启swagger,正式环境一般是需要关闭的(避免不必要的漏洞暴露!),可根据springboot的多环境配置进行设置
@ConditionalOnProperty(name = "swagger.enable",  havingValue = "true")
public class Swagger2Configuration {

    private static String SWAGGER_SCAN_BASE_PACKAGE;

    private static String VERSION;

    @Value("${swagger.SWAGGER_SCAN_BASE_PACKAGE}")
    public void setSwaggerScanBasePackage(String swaggerScanBasePackage) {
        SWAGGER_SCAN_BASE_PACKAGE = swaggerScanBasePackage;
    }

    @Value("${swagger.VERSION}")
    public void setVERSION(String VERSION) {
        Swagger2Configuration.VERSION = VERSION;
    }

    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 为当前包路径
                .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE))// 包扫描路径
                .paths(PathSelectors.any())// 可以根据url路径设置哪些请求加入文档,忽略哪些请求
                .build();
    }


    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Mr.Cheng Blog") //设置文档的标题
                .description("Mr.Cheng Blog API 接口文档") // 设置文档的描述
                .version(VERSION) // 设置文档的版本信息-> 1.0.0 Version information
                .termsOfServiceUrl("http://www.baidu.com") // 设置文档的License信息->1.3 License information
                .build();
    }

}

配置文件配置(yml配置)

# swagger2 接口包扫描路径
swagger:
  SWAGGER_SCAN_BASE_PACKAGE: com.chengdong.blog
  VERSION: 1.0.0
  # 是否启用swagger
  enable: true

通过使用@Configuration 注解,让spring自动加载配置;

通过使用@EnableSwagger2 注解启动swagger2;

通过使用@ConditionalOnProperty(name = “swagger.enable”, avingValue = “true”) 是否开启swagger,正式环境一般是需要关闭的(避免不必要的漏洞暴露!),可根据springboot的多环境配置进行设置;

成员方法 createRestApi 函数创建 Docket 的Bean之后,apiInfo() 用来创建该 Api 的基本信息(这些基本信息会展现在文档页面中)。select() 函数返回一个 ApiSelectorBuilder实例用来控制哪些接口暴露给 Swagger 来展现,本例采用指定扫描的包路径来定义,Swagger 会扫描该包下所有 Controller 定义的 API,并产生文档内容(除了被 @ApiIgnore 指定的请求)。



版权声明:本文为weixin_44618291原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。