Net Core:Swashbuckle 自动将操作 ID 设置为控制器操作方法

4 .net c# swagger swashbuckle asp.net-core

当为现有的 500 多个控制器和相应的方法创建 Angular API 服务代理时,我们试图覆盖 Swashbuckle/Swagger IO CodeGen 命名约定。

目前正在将 Net Core 3 API 与 Angular Typescript 链接起来。

/sf/answers/4099733571/

以下答案有效:

[HttpGet("{id:int}", Name = nameof(GetProductById))]
public IActionResult GetProductById(int id) // operationId = "GetProductById"'

[HttpGet("{id:int}", Name = "GetProductById")]
public IActionResult GetProductById(int id) // operationId = "GetProductById"'
Run Code Online (Sandbox Code Playgroud)

有没有办法在启动时循环遍历所有控制器和方法?名称应与控制器中操作方法的名称相同。

这也许是可能的解决方案,但是,我需要行动价值。

return services.AddSwaggerGen(c =>
{
    c.CustomOperationIds(e => $"{e.ActionDescriptor.RouteValues["controller"]}_{e.HttpMethod}");
Run Code Online (Sandbox Code Playgroud)

/sf/answers/3800636731/

小智 6

利用这段代码:

return services.AddSwaggerGen(c =>
{
    c.CustomOperationIds(e => $"{e.ActionDescriptor.RouteValues["action"]}");
Run Code Online (Sandbox Code Playgroud)