zoukankan      html  css  js  c++  java
  • .net core 3.1 Swagger 过滤部分Api

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

    具体操作步骤: 分为三步

    步骤1: 创建Attribute

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

        /// <summary>
        /// 隐藏接口,不生成到swagger文档展示
        /// </summary>
        [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
        public partial class SwaggerIgnoreAttribute : Attribute { }
        public class SwaggerIgnoreFilter : IDocumentFilter
        {
            public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
            {
                var ignoreApis = context.ApiDescriptions.Where(wh => wh.ActionDescriptor.EndpointMetadata.Any(any => any is SwaggerIgnoreAttribute));
                if (ignoreApis != null)
                {
                    foreach (var ignoreApi in ignoreApis)
                    {
                        swaggerDoc.Paths.Remove("/" + ignoreApi.RelativePath);
                    }
                }
    
            }
        }
    

    步骤3:StartUp类中 Swagger的Config中使用过滤器

    services.AddSwaggerGen(c =>
                {
                    c.DocumentFilter<SwaggerIgnoreFilter>();
                });
    

      

    原地址:https://www.cnblogs.com/mailaidedt/p/10132665.html

       

  • 相关阅读:
    Git标签
    Git管理修改和撤销修改
    Git删除文件
    Git解决冲突
    Git的stash功能
    Git管理分支
    Git的多人协作模式
    Git相关指令
    LC7 整数翻转 + LC9 回文数
    LC1 两数之和
  • 原文地址:https://www.cnblogs.com/pingming/p/14550522.html
Copyright © 2011-2022 走看看