Swagger 增加 DocumentFilter 隐藏不需要显示的接口
services.ConfigureSwaggerGen(options => {
options.SingleApiVersion(new Info {
Version = "v1",
Title = "xxx API",
Description = "xxx 项目webapi接口说明",
TermsOfService = "None",
Contact = new Contact { Name = "xxx", Email = "", Url = "http://xxx.com" },
License = new License { Name = "xxx", Url = "http://xxx.com" }
});
options.IncludeXmlComments(AppContext.BaseDirectory + @"/Admin.xml"); // 这个需要开启项目生成 xml 选项
options.DocumentFilter<HiddenApiFilter>();
// 在接口类、方法标记属性 [HiddenApi],可以阻止【Swagger文档】生成
});
HiddenApiFilter.cs 代码实现部分
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class)]
public partial class HiddenApiAttribute : Attribute { }
public class HiddenApiFilter : IDocumentFilter {
public void Apply(SwaggerDocument swaggerDoc, DocumentFilterContext context) {
foreach (ApiDescription apiDescription in context.ApiDescriptionsGroups.Items.SelectMany(e => e.Items)) {
if (apiDescription.GetControllerAttributes().OfType<HiddenApiAttribute>().Count() == 0
&& apiDescription.GetActionAttributes().OfType<HiddenApiAttribute>().Count() == 0) continue; var key = "/" + apiDescription.RelativePath.TrimEnd('/');
if (!key.Contains("/test/") && swaggerDoc.Paths.ContainsKey(key))
swaggerDoc.Paths.Remove(key);
}
}
}
Swagger 增加 DocumentFilter 隐藏不需要显示的接口的更多相关文章
- [Easyui - Grid]为easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列
为easyui的datagrid.treegrid增加表头菜单,用于显示或隐藏列 /** * @author 孙宇 * * @requires jQuery,EasyUI * * 为datagrid. ...
- 【extjs】 Extjs中的Ext.grid.Panel隐藏列会显示在表头中解决方法
在Extjs中的GridPanel会有这样的情况,隐藏列会显示在menuDisabled中,但是这个一般没有什么用处,只是用于后台取值的作用,感兴趣的朋友可以了解下啊,希望本文对你有所帮助 在Ex ...
- 利用JS做到隐藏div和显示div
div的visibility可以控制div的显示和隐藏,但是隐藏后页面显示空白 style="visibility: none;" document.getElementById( ...
- echarts隐藏之后的显示问题
好久没有更新博客了,今天搞了快一天的网页自适应,头晕...因为最近开始做项目,项目中需要用到图表方面的知识,于是乎接触到了echarts,所以其实我也算是新手了.只是近几天弄了很久的关于图表隐藏之后再 ...
- [WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口
原文:[WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口 [WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口 周银辉 现象: 大家可以试试下面这个很有趣但会带来Defect的现象:当我 ...
- 安全接口 interface --显示实现接口
前言:当我们定义接口的成员的时候不需要写访问控制符,因为它是默认public的,也只能是public.当一个类要实现这个接口的时候,自然要公开其成员.一直以来我都这么做. interface Inte ...
- C# 中显示实现接口
接口的实现分为显示实现和隐式实现 用显示实现接口的目的就是为了,当一个类中实现多个具有相同方法的接口时,能够区分开来 在调用的时候,必须用接口调用. class Program { static vo ...
- C#显示声名接口就是为了解决方法重名的问题
class class1 { public static void Main(string[] args) { Person ps = new Person(); ps.KouLan(); IFlya ...
- C# 中关于接口实现、显示实现接口以及继承
先列出我写的代码: 接口以及抽象类.实现类 public interface IA { void H(); } public interface IB { void H(); } public abs ...
随机推荐
- C#复习⑦
C#复习⑦ 2016年6月22日 11:50 Main Exception & Namespaces & Assemblies 异常 & 命名空间 & 程序集 1.tr ...
- == 与 equals 区别
同: ==和equals都比较两个值是否相等.相等为true 否则为false: 异: 1. == 是一个运算符;equals则是string对象的方法,可以.(点)出来. ...
- 项目管理学习笔记之五.沟通协调能力II
二.沟通模型:一个双向交流的过程 沟通模型:编 码---------------->信息-----------------> 解码&歧义发送者 ...
- JavaScript Patterns 5.7 Object Constants
Principle Make variables shouldn't be changed stand out using all caps. Add constants as static prop ...
- TechEd2013 Shanghai Hol Session PPT Share
上个月去上海参加了TechEd 2013,并且参与了Hands-on-Lab环节,作为讲师引导大家完成<Local DB in WP8>实验的内容.由于实验的内容采用MVVM架构完成,因此 ...
- 0006 《SQL必知必会》笔记02-计算字段与函数
1.从数据库中检索出的数据往往并不是最后要展示的格式,可以在数据库端或者客户端应用程序中完成转换和格式化,但一般说来,在数据库服务器中完成要快很多. 2.拼接字段:将几个值连接到一起构成单个值.Ora ...
- Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/Type
使用 proxy-target-class="true" 强制配置了 cglib 代理,于是包上面的错误,加入了 asm.jar 报也一样报错. 错误原因是,lib 中有两个cgl ...
- Linux磁盘管理之磁盘结构、概念、原理01
一.磁盘的分类 磁盘主要有IDE.SATA.SCSI.IDE是比较老的硬盘,数据速度比较慢:SATA是现在用的比较多的,台式机.笔记本大多都用的SATA硬盘:SCSI硬盘速度最快,但是价格相对较高. ...
- linux-3.14.13 看到mpls gso支持
在net/Kconfig source "net/mpls/Kconfig"
- @Value取不到值引出的spring的2种配置文件applicationContext.xml和xxx-servlet.xml
项目中经常会用到配置文件,定义成properties的形式比较常见,为了方便使用一般在spring配置文件中做如下配置: <context:property-placeholder ignore ...