Swagger UI - как передать URI на основе среды?

Я включил папку [dist] для пользовательского интерфейса Swagger в свой проект веб-API.

Но когда я перехожу в это место http://localhost:1234/swagger, он не указывает на http://localhost:1234/swagger/index.html автоматически.

Итак, когда я обращаюсь к http://localhost:1234/swagger/index.html напрямую, я я получаю эту страницу с пустым текстовым полем: ----

введите здесь описание изображения

  1. Я хочу, чтобы текстовое поле было заполнено http: // localhost: 1234 / swagger / docs / v1 < / а>

  2. Я хочу, чтобы это происходило динамически в зависимости от среды. например, если я получаю доступ к http://test.abc.com/swagger, текст должен быть заполнен как http://test.abc.com/swagger/docs/v1 автоматически.


person GilliVilla    schedule 27.09.2016    source источник


Ответы (1)


Чтобы ответить на ваш первый вопрос:

На вашей index.html странице вы можете иметь следующее:

<script type="text/javascript">

  $(function() {
    window.swaggerUi = new SwaggerUi({
      url: "http://localhost:1234/swagger/docs/v1",
      ...
  });

</script>

Что касается динамического создания URL-адреса в зависимости от посещенного веб-сайта, вы можете сделать следующее:

<script type="text/javascript">

  // Initialize the url variable
  if (!window.location.origin) {
    window.location.origin = window.location.protocol + "//" +
      window.location.hostname + (window.location.port ? ':' +
        window.location.port : '');
  }

  $(function() {
    // Create the generated url
    var myUrl = window.location.origin + '/docs/v1';

    // Initialize the Swagger object
    window.swaggerUi = new SwaggerUi({
      url: myUrl,
      ...
    });
  });

</script>
person homersimpson    schedule 27.09.2016