Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解
Asp.Net Core WebAPI中的Swagger:API隐藏与分组秘籍
大家好!今天我要和大家分享一些关于Asp.Net Core WebAPI使用Swagger时的技巧——如何隐藏和分组API。
一、为什么需要隐藏部分接口?
在使用Swagger作为API文档和测试工具时,我们经常会遇到一些内部使用的接口,例如与Consul结合时的健康检查接口和报警通知接口。这些接口可能出于方便而未被加密,因此需要隐藏起来,仅供内部开发者使用。
那为什么我们还要进行接口分组呢?
在前后端分离的项目中,随着业务的发展,接口数量可能会达到数百个。这时,区分哪些是框架接口、哪些是业务接口就显得尤为重要。为SwaggerUI的接口进行分组,可以帮助我们更清晰地管理和查找接口。
二、SwaggerUI的进阶使用:授权请求
对于某些需要授权的接口,我们需要在SwaggerUI中加入授权请求。这可以通过创建一个名为`HttpHeaderOperationFilter`的操作过滤器来实现。这个过滤器继承自`Swashbuckle.AspNetCore.SwaggerGen.IOperationFilter`接口,并实现`Apply`方法。
在这个过滤器中,我们首先检查操作是否已有参数,如果没有则创建一个新的参数列表。然后,我们尝试获取方法的反射信息,检查该方法是否标记为匿名访问或已授权。如果既没有标记为匿名访问也没有标记为已授权,则在参数列表中添加一个新的非主体参数,名称为“Authorization”,类型为字符串,并设置为必填项。描述部分提示用户输入Token的格式应为“bearer XXX”。这样,只有拥有正确Token的用户才能访问这些接口。
编程语言
- Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解
- 性能优化之代码优化页面加载速度
- js中class的点击事件没有效果的解决方法
- 使用php记录用户通过搜索引擎进网站的关键词
- .net4.0中tuple元组的使用方法
- 简介JavaScript中Boolean.toSource()方法的使用
- 解决 viewer.js 动态更新图片导致无法预览的问题
- css图片切换效果代码[不用js]
- JavaScript把数组作为堆栈使用的方法
- 如何强制删除或恢复SQLServer正在使用的数据库
- javascript 数组去重复(在线去重工具)
- readonly和disabled属性的区别
- .Net下执行sqlcmd的方法
- Laravel-admin之修改操作日志的方法
- 微信小程序 setData的使用方法详解
- SQL Server把某个字段的数据用一条语句转换成字符