因为场景需要,要把某些特定的api过滤掉,不允许显示在swaggerui里,

具体操作步骤: 分为三步

步骤1: 创建Attribute     

1     /// <summary>
2     /// ignore some api on swagger.json
3     /// </summary>
4     [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]
5     public class SwaggerIgnoreAttribute : Attribute
6     {
7 
8     }

 

步骤2:创建IDocumentFilter的实现类XXXFileter

 /// <summary>
    /// 过滤具备SwaggerIgnore特性的api
    /// </summary>
    public class SwaggerIgnoreFilter : IDocumentFilter
    {

        public void Apply(SwaggerDocument swaggerDoc, DocumentFilterContext context)
        {
           
            var ignoreApis = context.ApiDescriptions.Where(wh => wh.ActionAttributes().Any(any => any is SwaggerIgnoreAttribute));
            if (ignoreApis != null)
            {
                foreach (var ignoreApi in ignoreApis)
                {
                    swaggerDoc.Paths.Remove("/" + ignoreApi.RelativePath);
                }
            }

        }

    }
View Code

相关文章:

  • 2018-05-29
  • 2021-07-17
  • 2022-12-23
  • 2022-12-23
  • 2022-03-09
  • 2021-11-02
  • 2021-04-02
  • 2022-12-23
猜你喜欢
  • 2021-07-23
  • 2021-11-17
  • 2022-12-23
  • 2021-09-02
  • 2021-09-10
  • 2021-08-13
  • 2022-02-18
相关资源
相似解决方案