【问题标题】:How can view the swagger ui for Azure API app如何查看 Azure API 应用程序的 swagger ui
【发布时间】:2016-03-30 07:29:25
【问题描述】:

我正在 Visual Studio 2015 上创建一个 Azure API 应用程序。当我点击浏览并重定向到 http://localhost:3012/ 如果我将 swagger 添加到 url 时没有任何反应:http://localhost:3012/swagger

看来我需要添加/docs/v1 以获得完整地址:http://localhost:3012/swagger/docs/v1。当我添加 /swagger 以加载 swagger 页面时,不应该有自动 URL 路由。 此外,如果我浏览到 UI http://localhost:3012/swagger/ui 页面未加载,我只能查看 json 架构。

API 应用程序构建成功。有什么遗漏吗?

【问题讨论】:

    标签: c# azure swagger azure-web-app-service azure-api-apps


    【解决方案1】:

    在 WebAPI 项目的配置中(SwaggerConfig.cs 文件夹中的 App_Start),您必须启用 Swagger UI。它被注释为默认行为。

    只要打开配置,搜索:

                    /*
                        })
                    .EnableSwaggerUi(c =>
                        {
                    */
    

    并禁用上面和下面行中的 cmets

    【讨论】:

      【解决方案2】:

      上面的 Pedro 为启用 SwaggerUi 提供了完美的答案。 至于您对 URL“swagger/docs/v1”的问题

      这是 Swashbuckle 用于返回 API 的 Swagger 2.0 JSON 元数据的默认 URL

      SwaggerConfig.cs 文件是在您在项目中安装 Swashbuckle 包时创建的。您可以在“App_Start”文件夹中找到它。它提供了多种配置 Swashbuckle 的方法。我还没有检查您是否可以更改该默认 URL 或为其进行 URL 重新路由。

      已编辑:

      Swagger docs 和 swagger-ui 的默认路由模板分别是“swagger/docs/{apiVersion}”和“swagger/ui/{*assetPath}”。只要提供的模板包含相关的路由参数 - {apiVersion} 和 {*assetPath},您就可以更改这些。 例如:swagger-ui 的 URL 将是 myswag/index。

      http配置 .EnableSwagger("docs/{apiVersion}/swagger", c => c.SingleApiVersion("v1", "A title for your API"))

      .EnableSwaggerUi("myswag/{*assetPath}");

      您可以在 GitHub 存储库中阅读更多相关信息:https://github.com/domaindrivendev/Swashbuckle

      【讨论】:

        【解决方案3】:

        如果您在 Visual Studio 中使用模板 Azure API 应用程序 创建 API,您只需取消 SwaggerConfig.cs 文件中的几行注释即可为您的 API 应用程序激活 Swagger。

        1. 在您的解决方案中查找文件“SwaggerConfig.cs”

          'VSSolution' > App_Start > SwaggerConfig.cs

        2. 查找 EnableSwaggerUi 并删除以下代码行的 cmets

                      /*
                          })
                      .EnableSwaggerUi(c =>
                          {
                      */
          
        3. 就是这样,无需其他配置。

          只需运行应用程序: http://localhost:57452/大摇大摆

        【讨论】:

          【解决方案4】:

          我遇到了同样的问题,并被这些答案误导了一点,尽管我看到它们最终被承认是完全正确的。

          注意以下几点:

          • 不要将.EnableSwagger 设置误认为EnableSwaggerUiSwaggerConfig.cs 中设置。

            • 前者默认开启,出现在开头 SwaggerConfig.cs文件
            • 后者默认被注释掉并埋在很多其他的 cmets 中。我花了很长时间才注意到实际上有两个设置。
          • .EnableSwagger 设置会导致 raw JSON 在您的应用程序 URL https://yourapp.azurewebsites.net/swagger/docs/v1 上发出 - 这不是一个很大的帮助。

          • 虽然 .EnableSwaggerUi 设置是导致 Swagger UI 出现在您的网址上的原因 https://yourapp.azurewebsites.net/swagger

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-07-15
            • 1970-01-01
            • 2016-02-29
            • 1970-01-01
            • 2017-05-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多