当前位置: 首页 > news >正文

.net core Swagger 过滤部分Api

因为场景需要,要把某些特定的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

 

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

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

 

转载于:https://www.cnblogs.com/mailaidedt/p/10132665.html

相关文章:

  • 一位台湾学校校长的演讲
  • k8s使用glusterfs实现动态持久化存储
  • MFC CListCtrl 表格
  • Semaphore
  • L1与L2正则化
  • centos7配置postfix dovecot cyrus-sasl foxmail
  • python利用openpyxl库操作Excel来读取、修改、写入测试数据
  • nginx添加几十个域名
  • ffmpeg获取视频封面图片
  • 源码包安装 以及升级内核 上课内容
  • 实现 el-table 拖拽行排序,并获取当前拖拽行的数据传入服务器
  • js的面向对象编程
  • GitLab在centos7上安装和使用
  • 外行人都能看得懂的机器学习,错过了血亏!
  • 合并两个DataSet的一种方法
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • Android 控件背景颜色处理
  • Android交互
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Kibana配置logstash,报表一体化
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • Spring Boot MyBatis配置多种数据库
  • swift基础之_对象 实例方法 对象方法。
  • 后端_MYSQL
  • 开源SQL-on-Hadoop系统一览
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 试着探索高并发下的系统架构面貌
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • No resource identifier found for attribute,RxJava之zip操作符
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • python最赚钱的4个方向,你最心动的是哪个?
  • !!java web学习笔记(一到五)
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (4)logging(日志模块)
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (蓝桥杯每日一题)love
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (转)Linux下编译安装log4cxx
  • .Net core 6.0 升8.0
  • .net Stream篇(六)
  • .net wcf memory gates checking failed
  • .Net 高效开发之不可错过的实用工具
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory
  • [383] 赎金信 js
  • [acm算法学习] 后缀数组SA
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [AR Foundation] 人脸检测的流程
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [CF543A]/[CF544C]Writing Code