【问题标题】:Override base url in swagger UI在招摇 UI 中覆盖基本 url
【发布时间】:2017-05-25 07:45:22
【问题描述】:

我们的服务有两个实例。 Live 可运行,网址为 .../bazaar,而 beta 用于公开测试,网址为 .../betabazaar。

我们部署了一个 Swagger UI 实例,并将 URL 更改为 fetch .../betabazaar/swagger.json,它可以工作。但是当我使用“试用”时,所有请求都转到 .../bazaar/...

我假设 Swagger 使用 @ServicePath 参数来填充路径。对于这两种情况,@ServicePath 都是 /bazaar。我们的 Nginx 代理服务器负责将所有对 .../betabazaar/... 的请求发送到 beta 实例。

那么我可以更改用于 Swagger UI 中“试用”请求的 URL Swagger UI 吗?还是我需要更改 Java 中的@ServicePath?

我已经玩过 window.swaggerUi.setBasePath('/betabazaar');但这会导致 Swagger UI 首先尝试获取 http://example.com/api

【问题讨论】:

    标签: swagger swagger-ui


    【解决方案1】:

    正确的调用是

    window.swaggerUi.setBasePath('/betabazaar');
    

    并且需要在 onComplete 回调中调用。

    【讨论】:

    • 其实是window.swaggerUi.api.setBasePath('/betabazaar');
    【解决方案2】:

    您可以通过调用setBasePath 来覆盖onComplete 方法中的basePath:

    window.swaggerUi = new SwaggerUi({
      ...
      onComplete: function(swaggerApi, swaggerUi) {
        swaggerApi.setBasePath('/betabazaar')
    
        // Alternatively
        swaggerUi.api.setBasePath('/betabazaar')
    
        // Also this is possible
        window.swaggerUi.api.setBasePath('/betabazaar');
      }
    }
    

    也可以覆盖主机(这是我顺便寻找的)。

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 2021-01-05
      • 2019-04-06
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-12
      • 2023-03-10
      相关资源
      最近更新 更多