从 swagger UI 中排除特定的 Web Api 端点

Exclude particular Web Api endpoint from the swagger UI

我将 Swagger UI 与 asp.net 核心网络 api 一起使用。对于我的 CRUD 操作,我有一个基本控制器 class,它定义了抽象方法:

public class BaseController<TDto, TEntity>
{
    [HttpPost, Route("create-single")]
    public abstract Task<ObjectResult> CreateAsync(TDto input);

    [HttpPost, Route("create-many")]
    public abstract Task<ObjectResult> CreateManyAsync(IList<TDto> input);

    [HttpGet, Route("get-all")]
    public abstract Task<ObjectResult> GetAllAsync();

    [HttpGet, Route("get/{id}")]
    public abstract Task<ObjectResult> GetByIdAsync(Guid id);

    ...
    ...
}

有些控制器可能不需要所有的 CRUD 方法,我需要从 swagger 中删除那些端点。

例如,我需要消失特定控制器的 /get/{id} 端点,实现此目的的最佳方法是什么?

您可以将以下属性添加到控制器和操作以将它们从生成的文档中排除:[ApiExplorerSettings(IgnoreApi = true)