Mar*_*mro 17 c# asp.net swagger asp.net-core
默认情况下,当您在ASP.NET Core项目中启用swagger时,它在url上可用:
http://localhost:<random_port>/swagger/ui
Run Code Online (Sandbox Code Playgroud)
我想使用不同的基本网址而不是/swagger/ui.我如何/在哪里配置?
我发现对于旧版本,您可以配置RootUrl但在ASP.NET Core中没有类似的方法:
.EnableSwagger(c =>
{
c.RootUrl(req => myCustomBasePath);
});
Run Code Online (Sandbox Code Playgroud)
max*_*pan 32
新的swagger版本为您提供了一个名为RoutePrefix的属性.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = "docs";
});
Run Code Online (Sandbox Code Playgroud)
Esp*_*ans 10
对于ASP.NET Core 2(并使用Swashbuckle.AspNetCore.Swagger -Version 4.0.1),可以完成更改默认的swagger UI基本URL的完整配置。
如果要将“ mycoolapi”添加到默认的swagger UI URL的开头,例如:http://<server>/mycoolapi/swagger,请执行以下操作:
在您的Startup.cs Configure方法中:
app.UseSwagger(c =>
{
c.RouteTemplate = "mycoolapi/swagger/{documentname}/swagger.json";
});
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/mycoolapi/swagger/v1/swagger.json", "My Cool API V1");
c.RoutePrefix = "mycoolapi/swagger";
});
Run Code Online (Sandbox Code Playgroud)
然后,如果您当前拥有启动设置,以便在启动时通过swagger UI启动浏览器(出于开发目的),请类似地更新launchSettings.json文件配置文件部分:
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "mycoolapi/swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MyProject.Web": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "mycoolapi/swagger",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
Run Code Online (Sandbox Code Playgroud)
其他答案在 .NET 5 中对我不起作用。以下是我如何将“文档”添加到路由中
app.UseSwagger(c => c.RouteTemplate = "/swagger/docs/{documentName}/swagger.json");
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/docs/v2/swagger.json", "My API"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21146 次 |
| 最近记录: |