我们能否在不重新启动应用程序的情况下打开/关闭swagger

时间:2019-03-14 16:14:55

标签: java spring-boot swagger swagger-2.0

我已经见过关于如何禁用或启用swagger的不同方法(例如@Profile等),但是当您想使用swagger时,它们都没有用,您可以在运行的应用程序上完成后就启用和禁用它,而无需重新启动

1 个答案:

答案 0 :(得分:0)

有多种方法可以解决此问题,但不能使用直接的弹簧摇臂配置。我会记点我可以为您考虑的一些选项/步骤,您可以尝试一下。

选项1

  1. 为摇摇欲坠的URI创建一个filterchain,它将检查一个属性名swagger.enable true/false,从而转发或拒绝该请求。

  2. 要么公开发布端点以使用env.setProperty更新此属性,要么将该属性保留在application.properties中并创建重新加载功能。一些reference在这里重新加载。

选项2

  1. 从如下属性创建您的docket bean:

    @Bean 公共Docket api(){     返回新的Docket(DocumentationType.SWAGGER_2)            .... .build()。enable(env.getProperty(“ swagger.enable”));; }

  2. 参考Option 1 : Step#2

  3. 基于触发器向Docket bean的reinitialize添加逻辑,可以作为步骤#2端点的后续操作。

因此,您的一般URI将根据您所控制的此属性的当前状态工作,因此无需重新启动。