【问题标题】:Can we toggle swagger on/off without restarting the application我们可以在不重新启动应用程序的情况下打开/关闭 swagger
【发布时间】:2019-03-23 06:25:11
【问题描述】:

我已经看到了关于如何禁用或启用 swagger 的不同方法(例如:@Profile 等),但是当你想使用 swagger 时没有一个有用,你可以在正在运行的应用程序上启用和禁用它而无需重新启动.

【问题讨论】:

    标签: java spring-boot swagger swagger-2.0


    【解决方案1】:

    有一些方法或解决方法,但没有可以使用的直接 spring swagger 配置。我会记下一些我能想到的选项/步骤,你可以试试。

    选项 1

    1. 为 swagger URI 创建一个 filterchain,它会检查属性名称 swagger.enable true/false,然后转发或拒绝请求。

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

    选项 2

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

      @豆 公共案卷 api() { 返回新案卷(DocumentationType.SWAGGER_2) .... .build().enable(env.getProperty("swagger.enable")); }

    2. 参考Option 1 : Step#2

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

    因此,您的 swagger URI 将根据您正在控制的此属性的当前状态工作,因此不需要重新启动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-16
      • 2013-03-13
      • 2022-07-07
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      相关资源
      最近更新 更多