【发布时间】:2018-07-20 19:29:24
【问题描述】:
我为 ASP.NET Web 应用程序启用了 Swagger 文档。如何设置basePath?
GlobalConfiguration.Configuration .EnableSwagger(c => {
c.SingleApiVersion("v1", "MyApi") .Description("This is my API.");
c.IncludeXmlComments($@"{AppDomain.CurrentDomain.BaseDirectory}\bin\MyApi.XML");
}) .EnableSwaggerUi(c => {});
目前生成的API描述如下:
"swagger": "2.0",
"host": "localhost:8080",
"basePath": "/",
我想改成:
"swagger": "2.0",
"host": "localhost:8080",
"basePath": "/myapi",
【问题讨论】:
-
你能分享一些你的代码吗?
-
添加对 Swashbuckle nuget 包的引用,该包会自动将 swaggerConfig.cs 文件添加到 App_Start 文件夹。 swagger UI 和 JSON 文档非常好。我只想设置basePath。
GlobalConfiguration.Configuration .EnableSwagger(c => { c.SingleApiVersion("v1", "MyApi") .Description("This is my API."); c.IncludeXmlComments($@"{AppDomain.CurrentDomain.BaseDirectory}\bin\MyApi.XML"); }) .EnableSwaggerUi(c => {}); -
其他内容默认注释。我只粘贴了当前使用的(未注释的)代码。它太大了,无法在这里粘贴; stackoverflow 不允许。它甚至不允许上传文件。请创建一个新的 ASP.NET Web Api 项目并添加对 swashbuckle 的引用。否则,请给我您的电子邮件 ID,我会将文件通过电子邮件发送给您。
-
检查 cmets 看看是否有什么突出...我认为您需要的是 RootUrl
-
在 stackoverflow 上发布问题之前,我尝试了所有方法,但找不到任何解决方案。 RootUrl 的目的是“默认情况下,服务根 URL 是从用于访问文档的请求中推断出来的。但是,可能存在无法正确解决的情况(例如代理和负载平衡环境)。您可以解决此问题通过提供您自己的代码来确定根 URL。”。您是否在您的任何项目中实施了招摇的文档?您知道为 ASP.NET Web API 设置 basePath 的确切解决方案吗?
标签: asp.net-web-api swagger swashbuckle