【发布时间】:2019-03-23 06:25:11
【问题描述】:
我已经看到了关于如何禁用或启用 swagger 的不同方法(例如:@Profile 等),但是当你想使用 swagger 时没有一个有用,你可以在正在运行的应用程序上启用和禁用它而无需重新启动.
【问题讨论】:
标签: java spring-boot swagger swagger-2.0
我已经看到了关于如何禁用或启用 swagger 的不同方法(例如:@Profile 等),但是当你想使用 swagger 时没有一个有用,你可以在正在运行的应用程序上启用和禁用它而无需重新启动.
【问题讨论】:
标签: java spring-boot swagger swagger-2.0
有一些方法或解决方法,但没有可以使用的直接 spring swagger 配置。我会记下一些我能想到的选项/步骤,你可以试试。
为 swagger URI 创建一个 filterchain,它会检查属性名称 swagger.enable true/false,然后转发或拒绝请求。
要么公开一个 post 端点以使用 env.setProperty 更新此属性,要么将此属性保留在 application.properties 中并创建重新加载功能。一些reference在这里重新加载。
从如下属性创建你的 docket bean:
@豆 公共案卷 api() { 返回新案卷(DocumentationType.SWAGGER_2) .... .build().enable(env.getProperty("swagger.enable")); }
参考Option 1 : Step#2
基于触发器将逻辑添加到reinitialize Docket bean,可以作为步骤#2 端点的后续操作。
因此,您的 swagger URI 将根据您正在控制的此属性的当前状态工作,因此不需要重新启动。
【讨论】: