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);
		}
	}
}
时间: 2024-10-02 10:13:09

Swagger 增加 DocumentFilter 隐藏不需要显示的接口的相关文章

[Easyui - Grid]为easyui的datagrid、treegrid增加表头菜单,用于显示或隐藏列

为easyui的datagrid.treegrid增加表头菜单,用于显示或隐藏列 /** * @author 孙宇 * * @requires jQuery,EasyUI * * 为datagrid.treegrid增加表头菜单,用于显示或隐藏列,注意:冻结列不在此菜单中 */ var createGridHeaderContextMenu = function(e, field) { e.preventDefault(); var grid = $(this);/* grid本身 */ var

利用JS做到隐藏div和显示div

div的visibility可以控制div的显示和隐藏,但是隐藏后页面显示空白 style="visibility: none;" document.getElementById("typediv1").style.visibility="hidden";//隐藏 document.getElementById("typediv1").style.visibility="visible";//显示 通过设置

Excel:插入图片随表格隐藏,或显示

今天遇到个问题,在做数据表的时候,插入的图片一直显现,不随当前变化的表格做变化,十分不方便, 在网上查了查,又试了下,找到属性,可以处理这个问题,右键点击,选择大小和属性,大小和位置随单元格而变, 成功.. .. PS:此文仅为记录,不做他用 Excel:插入图片随表格隐藏,或显示

隐藏后重新显示 百度地图 ,地图显示不完整,只显示左上角一小部分

问题描述:我一个DIV1里,放了一个显示百度地图的mapDiv. 问题出现 了, 当初始化(第一次显示DIV1)时 ,可以 正常显示 地图, 当隐藏后 再 显示 时, 地图就 出错了,地图显示不完整,只显示左上角一小部分. jsp代码: <!-- 显示地图,获取经纬度    start --> <div id="mapModel" class="modal  fade " tabindex="-1" role="dia

[WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口

原文:[WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口 [WPF疑难] 模式窗口被隐藏后重新显示时变成了非模式窗口 周银辉 现象: 大家可以试试下面这个很有趣但会带来Defect的现象:当我们将子窗口按照ShowDialog()的方式显示出来的时候,很明显该窗口是模式化的(即主窗口等待该窗口的返回,主窗口将不相应用户输入),但如果此时将子窗口的Visibility设置成Visibility.Hidden来隐藏窗口,然后再将Visibility设置成Visibility.Visible来

显示实现接口

接口定义了一系列的行为规范,为类型定义一种Can-Do的功能.例如,实现IEnumerable接口定义了GetEnumerator方法,用于获取一个枚举数,该枚举数支持在集合上进行迭代,也就是我们常说的foreach.接口只是定义行为,具体的实现需要由具体类型负责,实现接口的方法又分为隐式实现与显示实现. 一.隐式/显示实现接口方法 简单的说,我们平时“默认”使用的都是隐式的实现方式.例如: interface ILog { void Log(); } public class FileLogg

安全接口 interface --显示实现接口

前言:当我们定义接口的成员的时候不需要写访问控制符,因为它是默认public的,也只能是public.当一个类要实现这个接口的时候,自然要公开其成员.一直以来我都这么做. interface Interface1 { string GetName(string name); } class Class1:Interface1 { public string GetName(string name) { return name; } } } 然而这么做并没有错.直到我学习控件开发的时候,发现了原来

css隐藏多余文字显示...

<style> .ellipsis{width:100px; overflow:hidden; text-overflow:ellipsis; white-space: nowrap;} .ellipsis:hover{overflow: visible;} </style> <div class="ellipsis">css隐藏多余文字并用...表示未完的内容</div> 使用到的css属性 width:***, overflow:hi

JQuery 简单的文字超出部分隐藏下拉显示

HTML代码: <body> <div class="txt_bos"><!--在每一个放置文字的class外面包一个div,以便设置动画样式用,同样用class--> <div class="txt1"><!--为了保证功能的通用性,这里全用class--> 石村,位于苍莽山脉中,四周高峰大壑,茫茫群山巍峨. 清晨,朝霞灿灿,仿若碎金一般洒落,沐浴在人身上暖洋洋. 一群孩子,从四五岁到十几岁不等,能有数十