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

Net Core: Swashbuckle Set operationId Automatically on to Controller Action Method

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

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

以下答案有效:

[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"'

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

这可能是可行的解决方案,但是,我需要操作值。

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

利用这段代码:

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