【问题标题】: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。
-
在您的解决方案中查找文件“SwaggerConfig.cs”
'VSSolution' > App_Start > SwaggerConfig.cs
-
查找 EnableSwaggerUi 并删除以下代码行的 cmets
/*
})
.EnableSwaggerUi(c =>
{
*/
-
就是这样,无需其他配置。
只需运行应用程序:
http://localhost:57452/大摇大摆
【解决方案4】:
我遇到了同样的问题,并被这些答案误导了一点,尽管我看到它们最终被承认是完全正确的。
注意以下几点:
-
不要将.EnableSwagger 设置误认为EnableSwaggerUi
在SwaggerConfig.cs 中设置。
- 前者默认开启,出现在开头
SwaggerConfig.cs文件
- 后者默认被注释掉并埋在很多其他的 cmets 中。我花了很长时间才注意到实际上有两个设置。
.EnableSwagger 设置会导致 raw JSON 在您的应用程序 URL https://yourapp.azurewebsites.net/swagger/docs/v1 上发出 - 这不是一个很大的帮助。
虽然 .EnableSwaggerUi 设置是导致 Swagger UI 出现在您的网址上的原因 https://yourapp.azurewebsites.net/swagger