【问题标题】:SpringFox Boot starter: How to disable swagger-ui for production profile?SpringFox Boot starter:如何为生产配置文件禁用 swagger-ui?
【发布时间】:2021-03-12 08:51:51
【问题描述】:

我正在使用 io.springfox springfox-boot-starter v 3.0.0,

根据文档,此 Spring Boot 设置将禁用 prod 的 swagger 端点:

@Configuration
@Profile({"!prod && swagger"})
public class SwaggerConfig implements WebMvcConfigurer {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .useDefaultResponseMessages(false)
                .select()
                .apis(RequestHandlerSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

...

在 prod 上,此处定义的 swagger 的 customisations 确实丢失了,但 Swagger UI endpoint 仍然存在。如何完全抑制 /swagger-ui/ 端点?我可以在 Spring Boot 应用程序配置中的某处设置 springfox.swagger-ui.enabled=false 属性吗?

【问题讨论】:

    标签: swagger-ui springfox-boot-starter


    【解决方案1】:

    您可以使用以下属性禁用

    springfox.documentation.enabled=false
    

    【讨论】:

      【解决方案2】:

      如果你想完全删除swagger相关的资源,考虑在编译时进行。

      如果您使用的是 Apache Maven,可以很容易地在 Maven 配置文件中控制依赖项和运行时配置,例如 swagger

      为生产构建时,运行以下命令。

      mvn package -Pprod
      
      // for dev stage.
      mvn clean spring-boot:run -Pdev,swagger
      

      My example有点老了,使用Maven来控制不同阶段的不同配置。

      【讨论】:

      • 谢谢,我们为 tst/acc/prd 构建了一个包,在 tst 和 acc 上,我们确实想要 swagger ui。否则这对我们有用。
      猜你喜欢
      • 2021-02-28
      • 1970-01-01
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      相关资源
      最近更新 更多