默认情况下,当你在ASP.NET Core项目中启用swagger时,它可以在url上使用:
http://localhost:<random_port>/swagger/ui
字符串
我想使用一个不同的基本URL而不是/swagger/ui
。如何/在哪里可以配置它?
我发现对于旧版本,你可以配置RootUrl
,但在ASP.NET Core中没有类似的方法:
.EnableSwagger(c =>
{
c.RootUrl(req => myCustomBasePath);
});
型
8条答案
按热度按时间eivnm1vs1#
对于ASP.NETCore2(并使用
Swashbuckle.AspNetCore.Swagger -Version 4.0.1
),可以做一些事情来更改默认swaggerUI基本URL的完整配置。如果你想在默认的swagger UI URL的开头添加“mycoolapi”,像这样:
http://<server>/mycoolapi/swagger
,然后执行以下操作:在Startup.cs Configure方法中:
字符串
然后,如果您当前的launchSettings在启动时以swagger UI启动浏览器(出于开发目的),请类似地更新launchSettings.json文件配置文件部分:
型
x6h2sr282#
新的swagger版本提供了一个名为RoutePrefix的属性。
字符串
应该适用于.net core
qc6wkl3g3#
其他答案在.NET 5中对我不起作用。
字符串
ha5z0ras4#
您也可以在配置中执行此操作
字符串
piok6c0g5#
1.打开launchSettings.json文件。
1.在**“profiles”节点下,根据您的设置,您应该有一个或多个配置文件。在可能的情况下,我有“IIS Express”和另一个与我的项目名称命名( 例如WebApplication1),现在将launchUrl条目更改为**“launchUrl”:“swagger”**解决了我的问题。
1.如果这不起作用,你有其他配置文件做同样的测试。
lstz6jyr6#
我不得不挖掘原始文档,因为所有上述解决方案都不起作用。Startup.cs 中的代码对我来说是有效的:
字符串
我的网站是IIS中的一个子网站。所以,首先,我必须设置PathBase:
型
z6psavjg7#
使用Dotnet/Aspnet 8
字符串
应该正确更改URL。
我是通过跟踪
UseSwagger..RouteTemplate
找到源代码的:型
sycxhyv78#
在StartUp类的Configure方法中启用中间件的
UseSwaggerUi()
扩展方法需要两个变量。默认情况下,baseRoute
位于swagger/ui
上,swaggerUrl
默认情况下位于swagger/v1/swagger.json
上。只需提供不同的baseRoute。字符串
如果人们想了解更多关于为ASP.NET Core配置Swagger的信息,我已经写了一篇博客文章:https://dannyvanderkraan.wordpress.com/2016/09/09/asp-net-core-1-0-web-api-automatic-documentation-with-swagger-and-swashbuckle/