【发布时间】:2021-09-30 12:41:01
【问题描述】:
我有两个控制器,分别名为 TestController 和 Test2Controller。我怎么能大摇大摆地让这两个控制器有 2 个单独的 url,例如 TestController 它的地址是
baseurl/docs/test/index.html
对于Test2Controller,地址为
baseurl/docs/test2/index.html
TestController:
[Route("api/[controller]")]
[ApiExplorerSettings(GroupName = "Test")]
public class TestController : ControllerBase
{
[ApiExplorerSettings(IgnoreApi = false)]
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
Test2Controller:
[Route("api/[controller]")]
[ApiExplorerSettings(GroupName = "Test2")]
public class Test2Controller : ControllerBase
{
[ApiExplorerSettings(IgnoreApi = false)]
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
StartUp.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("Test", new OpenApiInfo());
c.SwaggerDoc("Test2", new OpenApiInfo());
}
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/Test/swagger.json", "Test");
c.SwaggerEndpoint("/swagger/Test2/swagger.json", "Test2");
});
}
【问题讨论】:
-
用路由属性装饰方法/控制器;你的大摇大摆的发电机会捡起来
-
你能举个例子吗? @CaiusJard
-
你想要 2 个不同的 Swagger URL 用于 2 个不同的控制器吗?
-
是的@subhankars
标签: c# api asp.net-core controller swagger