大摇大摆地覆盖基础 url UI

Override base url in swagger UI

我们的服务有两个实例。 Live 可运行并具有 URL .../bazaar,Beta 用于 public 测试并具有 URL .../betabazaar。

我们部署了一个 Swagger UI 实例,并将 url 更改为获取 .../betabazaar/swagger.json,这很有效。但是当我使用 "try out" 时,所有请求都会转到 .../bazaar/...

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

那么我可以更改 URL Swagger UI 在 Swagger UI 中用于 "try it out" 请求吗?还是我需要更改 Java 中的@ServicePath?

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

正确的叫法是

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

需要在onComplete回调中调用

您可以通过调用 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');
  }
}

也可以覆盖主机(顺便说一句,这是我正在寻找的)。