我有控制器喜欢
public class UserController : ApiController
{
[Route("api/user")]
IHttpActionResult GetUser() { ... }
}
public class ResumeController : ApiController
{
[Route("api/user/resumes")]
IHttpActionResult GetResumes() { ... }
}
Run Code Online (Sandbox Code Playgroud)
有没有办法(除了通过推出自己ISwaggerProvider或将两个控制器合并为一个来覆盖默认实现)来强制执行组名?就像是
public class UserController : ApiController
{
[Route("api/user")]
[MagicalAttributeName(Group="User")]
IHttpActionResult GetUser() { ... }
}
public class ResumeController : ApiController
{
[Route("api/user/resumes")]
[MagicalAttributeName(Group="User")]
IHttpActionResult GetResumes() { ... }
}
Run Code Online (Sandbox Code Playgroud) 我有一个需要使用最少 API 的实现。但不知何故,无法将其从 swagger API 浏览器中排除。在 MVC 控制器方法中,我们可以使用 隐藏端点[ApiExplorerSettings(IgnoreApi=true)],但对于最小 API 来说并非如此。
代码:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("api/v1/endpoint_a", () => { ... });
// Hide this from Swagger API explorer
app.MapGet("api/v1/endpoint_b", () => { ... });
Run Code Online (Sandbox Code Playgroud)
将属性放入端点是有效的,但不起作用。
代码:
app.MapGet("api/v1/endpoint_b", [ApiExplorerSettings(IgnoreApi=true)]() => { ... });
Run Code Online (Sandbox Code Playgroud)
知道我在这里缺少什么吗?