zoukankan      html  css  js  c++  java
  • 接口 Swagger 部分Web API的隐藏

    原文:https://www.cnblogs.com/wyt007/p/10650974.html
    原文:https://www.bbsmax.com/A/VGzloMNxdb/


    一、前言


    背景

    有的api文档不想显示出来,比如在基类BaseApiController中有一些公用的方法(原因先不管哈)
    百度了一下,找到了几篇都是asp.net core的,然后就照着他们的自己稍微改了一下

    环境:

    • .NET Framework 4.6.1
    • Swashbuckle 5.6.0



    二、具体操作步骤


    1、添加特性,隐藏swagger接口特性标识

    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
    public class HiddenApiAttribute : Attribute {}
    

    2、添加过滤器,自定义Swagger隐藏过滤器

    public class HiddenApiFilter : IDocumentFilter
    {      
        void IDocumentFilter.Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer)
        {
            foreach (ApiDescription apiDescription in apiExplorer.ApiDescriptions)
            {
    
                if (apiDescription.GetControllerAndActionAttributes<HiddenApiAttribute>().Any())
                {
                    string key = "/" + apiDescription.RelativePath;
                    if (key.Contains("?"))
                    {
                        int idx = key.IndexOf("?", System.StringComparison.Ordinal);
                        key = key.Substring(0, idx);
                    }
                    swaggerDoc.paths.Remove(key);
                }                
            }
        }
    }
    

    3、修改SwaggerConfig,注入过滤器

    取消注释
    c.DocumentFilter<ApplyDocumentVendorExtensions>();
    修改为
    c.DocumentFilter<HiddenApiFilter>();

    4、测试

    public class BaseApiController2 : ApiController
    {
        [HiddenApi]
        public void test1()
        {
    
        }
    }
    
  • 相关阅读:
    多数据源配置
    Oracle创建JOB
    2新建Data Adapter
    注解的CRUD;重点:多对一和一对多处理
    Mybatis分页+使用注解开发!
    继续mybatis配置resultMap;讲解日志部分
    Today has a day off.
    Mybatis其他配置!
    Mybatis优化配置!
    Mybatis的CRUD
  • 原文地址:https://www.cnblogs.com/guxingy/p/12880799.html
Copyright © 2011-2022 走看看