本文主要是介绍swagger2使用(2):测试环境发布文档而生产环境不发布文档,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
生产环境不发布文档
在开发中,api通常不发布到生产环境中,那么如何只将swagger发布在测试和本地环境,而生产环境不可使用swagger
这里不得不提到Swagger的Docket对象,其中包含一个enable方法:true(默认) 可用,false不可用
解决方法
更改或者新增SwaggerConfig
package com.it2.swagger.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
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;import java.util.ArrayList;
import java.util.function.Predicate;@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket docket(Environment environment) {/*** 这里取的是spring.profiles.active的值,通常dev/test表示测试,prod或者pro表示正式*/Profiles profile= Profiles.of("dev","test");boolean flag=environment.acceptsProfiles(profiles);return new Docket(DocumentationType.SWAGGER_2).enable(flag).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.it2.swagger.controller"))//.paths(PathSelectors.any()) //过滤掉什么.build();}private ApiInfo apiInfo() {Contact contact=new Contact("熊大","http://www.feichai.cc/","lcz0710@163.com");return new ApiInfo("项目的API","API的描述信息","1.0","http://www.feichai.cc/", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList());}
}
这篇关于swagger2使用(2):测试环境发布文档而生产环境不发布文档的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!