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

       

  • 相关阅读:
    菜单范式
    PIC18F26K20
    单片机中串口通信模型
    STM8S103之GPIO
    STM8S103之ADC
    二叉树最近公共祖先
    全排列
    整数翻转
    完全二叉树节点个数
    二叉树的深度
  • 原文地址:https://www.cnblogs.com/pingming/p/14550522.html
Copyright © 2011-2022 走看看