ASP.NET Core 在 Swagger UI 中显示自定义的 Header Token

Swagger 是个好东西,对于前后端分离的网站来说,不仅是提高前后端开发人员沟通效率的利器,也大大方便了后端人员测试 API。有时候,API 中可能需要在 Header 中设置认证参数,比如 authToken,这样的功能我们通常是使用 ActionFilter 实现的,这就会导致 swagger UI 中缺少 authToken 字段,下面就来介绍解决这个问题的办法。

创建一个过滤器类,内容如下:

/// <summary>
/// this class is for swagger to generate AuthToken Header filed on swagger UI
/// </summary>
public class AddAuthTokenHeaderParameter : IOperationFilter{  

 
public void Apply(Operation operation, OperationFilterContext context)    
{        

      if (operation.Parameters == null)            operation.Parameters = new List<IParameter>();    
      
var attrs = context.ApiDescription.GetActionAttributes();  
      
foreach (var attr in attrs)        {            // 如果 Attribute 是我们自定义的验证过滤器            if (attr.GetType() == typeof(Auth))            {                operation.Parameters.Add(new NonBodyParameter()                {                    Name = "AuthToken",                    In = "header",                    Type = "string",                    Required = false                });            }        }    } }

然后在配置 Swagger 的地方,做一些修改:

services.AddSwaggerGen(c =>{           
      c.SingleApiVersion(new Info(){            
                Version = "v1",          
                Title = "API 文档",                
                Description = "系统的 API 文档"});          
       c.OperationFilter<AddAuthTokenHeaderParameter>(); // 手动高亮});

最后,dotnet run

frameborder="0" scrolling="no" style="font-family: inherit; border-width: initial; border-style: none; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; vertical-align: baseline; width: 835px; height: 257px;">

这样,Swagger UI 中就显示了附加在 header 中的参数——AuthToken,还要啥 Postman。

相关文章: 

  • 在ASP.NET Core Web API上使用Swagger提供API文档

  • 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档

原文地址:http://www.cnblogs.com/JacZhu/p/6188968.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx,excel模板下载

nginx&#xff0c;excel模板下载 weixin_30814223 2018-08-27 10:26:00 245 收藏 版权 spring boot项目&#xff0c;使用nginx服务器 最近在做一个功能是excel文件上传&#xff0c;并将其中的数据入库&#xff0c;同时还有一个文件模板下载 现在说一说这个文件模板下载 …

方舟非主机服务器无限距离,方舟非专业服务器距离限制怎么解除 | 手游网游页游攻略大全...

发布时间&#xff1a;2016-08-03方舟适者生存服务器进不去 进不去服务器解决办法攻略.服务器进不去怎么办?很多玩家无法进入服务器,主要是两种情况,一种是点服务器游戏就重启,一种是进不去,这里给大家介绍解决方法. 一.点服务器 ...标签&#xff1a;游戏攻略 游戏秘籍 方舟&am…

zookeeper  虚拟机zookeeper和 win10java代码连接

28_支付服务注册进zookeeper 上面的都复习了 18 zookeeper替换Eureka zookeeper已经在你的centeros7上配置成功了 前提要求 19 20 21 22 zookeeper在centeros7 java代码在win10 23 24 25 我是在虚拟机新建的 因为视频是虚拟机的 26 27 28 http://127.0.0.1:80…

Hystrix---SpringCloud

Hystrix 服务熔断 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系&#xff0c;每个依赖关系在某些时候将不可避免失败&#xff01; 服务雪崩 多个微服务之间调用的时候&#xff0c;假设微服务A调用微服务B和微服务C&#xff0c;微服务B和微服务C又调…

ASP.NET Core 导入导出Excel xlsx 文件

ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件&#xff0c;EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出&#xff0c;可以运行在Windows, Linux和Mac。 EPPlus.Core 是基于EPPlus 更改而来&#xff0c;在Linux 下需要安装libgdiplus 。 EPPlus&#xff1a;http://…

Zull路由网关---SpringCloud

Zull路由网关 概述 什么是zuul? Zull包含了对请求的路由(用来跳转的)和过滤两个最主要功能&#xff1a; 其中路由功能负责将外部请求转发到具体的微服务实例上&#xff0c;是实现外部访问统一入口的基础&#xff0c;而过滤器功能则负责对请求的处理过程进行干预&#xff0c;…

微软称开源.NET吸引了更多开发者

两年前&#xff0c;微软出人意料的宣布开源 .NET 框架&#xff0c;两年后的今天微软表示开源 .NET 取得了成功。 .NET 项目吸引了更多的新开发者&#xff0c;虽然开源没有带来直接的收入&#xff0c;但却可能产生间接的收入&#xff0c;比如吸引更多人使用微软的云计算平台或开…

网站压力测试软件(Apache JMeter)2.13 官方版 Error: Unable to access jarfile ApacheJMeter.jar

https://jmeter.apache.org/download_jmeter.cgi 官网 https://archive.apache.org/dist/jmeter/binaries/ 下载地址 下载没有src的文件 使用方法 本录制&#xff0c;JMeter启用WEB代理&#xff0c;浏览器把代理上网设置为JMeter所在的IP地址&#xff0c;自己电脑就是127.…

win10系统用户访问ftp服务器被拒绝,关于windows2003下ftp用户名无法访问FTP服务器的问题...

关于windows 2003下建设FTP的步骤我不再详解&#xff0c;主要说两个我们经常出错的两个小问题&#xff0c;这两个小问题往往我们很容易忽视&#xff0c;使我们无法访问自己建立的FTP服务器。问题1&#xff1a;当我们建立一个FTP服务器选用“不隔离用户”选项并且选用不允许匿名…

SpringCloud Config 分布式配置

SpringCloud Config 分布式配置 Dalston.RELEASE Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server&#xff0c;您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同…

.NET泛型初探

总所周知&#xff0c;.NET出现在.net framework 2.0&#xff0c;为什么要在2.0引入泛型那&#xff0c;因为微软在开始开发.net框架时并没有想过多个类型参数传输时对方法的重构&#xff0c;这样一来&#xff0c;开发人员就要面对传输多种类型的参数而不得以写多个方法&#xff…

如何将idea自带的maven添加到环境变量

如何将idea自带的maven添加到环境变量 标签&#xff1a; maven idea 2018-07-10 阅读(3081) 想要通过命令形式在cmd操作IntelliJ IDEA自带的maven&#xff0c;那么就必须配置idea的maven环境变量。 下面以window 10 和 idea 2016.1为例&#xff1a; 第一步&#xff1a;找到…

三国志战略版360区S4服务器合并信息,三国志战略版pk赛季怎么转区?s4转区规则[多图]...

三国志战略版pk赛季是全新的开始&#xff0c;那么如果有的玩家想要转区的话&#xff0c;需要有哪些方法或者说是条件呢&#xff1f;下面来了解下&#xff01;三国志战略版pk赛季怎么转区&#xff1f;一、多久转服因为转服只有赛季快结束&#xff0c;也就是赛季末期才会开启&…

SpringCloud(笔记)

简介 学习前提 熟练使用SpringBoot 微服务快速开发框架 了解过Dubbo Zookeeper 分布式基础 电脑配置内存不低于8G(我自己的是16G) 给大家看下多个服务跑起来后的内存开销图&#xff1a; 文章大纲 微服务架构面临的四个核心问题&#xff1f; 1.服务很多&#xff0c;客…

java身份证号码正则表达式校验(亲测可用) Java正则校验手机号

java身份证号码正则表达式校验&#xff08;亲测可用&#xff09; // 原文&#xff1a;https://blog.csdn.net/u011106915/article/details/76066985 public class IDUtils { public static boolean isIDNumber(String IDNumber) { if (IDNumber null || "&qu…

博客园官方 NuGet镜像上线试运行

为解决国内访问NuGet服务器速度不稳定的问题&#xff0c;我们用阿里云服务器搭建了一个NuGet镜像&#xff0c;目前已上线试运行。 使用NuGet镜像源的方法如下&#xff1a; 1&#xff09;NuGet镜像源地址&#xff1a;https://nuget.cnblogs.com/v3/index.json 2&#xff09;在Nu…

Java synchronized 中的while 和 notifyAll

转载自 Java synchronized 中的while 和 notifyAll 问题1 为什么是while 而不是if 大多数人都知道常见的使用synchronized代码: synchronized (obj) {while (check pass) {wait();}// do your business } 那么问题是为啥这里是while而不是if呢? 这个问题 我最开始也想了很…

Java并发编程:Lock

转载自 Java并发编程&#xff1a;Lock 一.synchronized的缺陷 synchronized是java中的一个关键字&#xff0c;也就是说是Java语言内置的特性。那么为什么会出现Lock呢&#xff1f; 在上面一篇文章中&#xff0c;我们了解到如果一个代码块被synchronized修饰了&#xff0c;当一个…

docker下安装nacos 并使用mysql数据库

没做出来 腾讯云 有机会用虚拟机试试 参考资料 https://www.e-learn.cn/content/java/2357340 https://blog.csdn.net/xieqing_xq/article/details/105458887 重点 https://www.cnblogs.com/liushuchen/p/12488366.html 重点 http://122.51.187.132:8845/nacos/#/c…

javaMai+Springl实现给QQ邮箱发邮件(带附件,html格式)

以前的时候想着java发邮件很简单&#xff0c;因为当时使用的是outlook实现的&#xff0c;有兴趣的可以去看看之前的两篇博客文章&#xff0c;1.使用java底层实现邮件的发送&#xff08;含测试&#xff0c;源码&#xff09; 和 2.使用Spring实现邮件的发送&#xff08;含测试&…