Swagger UI - 如何传递基于环境的URI?

时间:2016-09-27 19:24:33

标签: .net c#-4.0 asp.net-web-api2 swagger swagger-ui

我在我的Web API项目中包含了Swagger UI的[dist]文件夹。

但是当我去这个地方的时候 http://localhost:1234/swagger 它不会自动指向http://localhost:1234/swagger/index.html

所以,当我直接访问http://localhost:1234/swagger/index.html时,我会收到一个空文本框的页面:----

enter image description here

  1. 我希望文本框中填充http://localhost:1234/swagger/docs/v1

  2. 我希望这是基于环境动态发生的。例如,如果我访问http://test.abc.com/swagger,则文本应自动填充为http://test.abc.com/swagger/docs/v1

1 个答案:

答案 0 :(得分:1)

回答你的第一个问题:

index.html页面中,您可以拥有以下内容:

<script type="text/javascript">

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

</script>

根据您访问的网站动态生成网址,您可以执行以下操作:

<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>