在项目中引用Swashbuckle.AspNetCore和Swashbuckle.AspNetCore.Filters两个dll,在Startup中的ConfigureServices相关配置代码如下

            services.AddSwaggerGen(options =>
{
string contactName = Configuration.GetSection("SwaggerDoc:ContactName").Value;
string contactNameEmail = Configuration.GetSection("SwaggerDoc:ContactEmail").Value;
string contactUrl = Configuration.GetSection("SwaggerDoc:ContactUrl").Value;
options.SwaggerDoc("v1", new OpenApiInfo
{
Version = Configuration.GetSection("SwaggerDoc:Version").Value,
Title = Configuration.GetSection("SwaggerDoc:Title").Value,
Description = Configuration.GetSection("SwaggerDoc:Description").Value,
Contact = new OpenApiContact { Name = contactName, Email = contactNameEmail, Url =new Uri(contactUrl)},
License = new OpenApiLicense { Name = contactName, Url = new Uri(contactUrl) }
}); var basePath = PlatformServices.Default.Application.ApplicationBasePath;
var xmlPath = Path.Combine(basePath, "Yuebon.WebApi.xml");
options.IncludeXmlComments(xmlPath);
options.DocumentFilter<HiddenApiFilter>(); // 在接口类、方法标记属性 [HiddenApi],可以阻止【Swagger文档】生成
options.OperationFilter<AddHeaderOperationFilter>("correlationId", "Correlation Id for the request", false); // adds any string you like to the request headers - in this case, a correlation id
options.OperationFilter<AddResponseHeadersFilter>();
options.OperationFilter<AppendAuthorizeToSummaryOperationFilter>(); options.OperationFilter<SecurityRequirementsOperationFilter>();
//给api添加token令牌证书
options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
{
Description = "JWT授权(数据将在请求头中进行传输) 直接在下框中输入Bearer {token}(注意两者之间是一个空格)\"",
Name = "Authorization",//jwt默认的参数名称
In = ParameterLocation.Header,//jwt默认存放Authorization信息的位置(请求头中)
Type = SecuritySchemeType.ApiKey
});
});

两个重点:

1、options.DocumentFilter<HiddenApiFilter>();定义那些接口方法被隐藏

2、启用oauth2安全授权访问api接口

                options.OperationFilter<SecurityRequirementsOperationFilter>();
//给api添加token令牌证书
options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
{
Description = "JWT授权(数据将在请求头中进行传输) 直接在下框中输入Bearer {token}(注意两者之间是一个空格)\"",
Name = "Authorization",//jwt默认的参数名称
In = ParameterLocation.Header,//jwt默认存放Authorization信息的位置(请求头中)
Type = SecuritySchemeType.ApiKey
});

其中使用SecurityRequirementsOperationFilter需要在控制器头部加[Authorization]或则方法头部加[Authorization],如下:

 [Authorize]
public class TokenController : ControllerBase

或者

[Authorize("Customer")]
public PersonResponse GetPerson([FromBody]PersonRequest personRequest)
这样在每个接口才会有小锁出现。
更多介绍请参考https://github.com/domaindrivendev/Swashbuckle.AspNetCorehttps://github.com/mattfrear/Swashbuckle.AspNetCore.Filters

netcore3.0 webapi集成Swagger 5.0的更多相关文章

  1. netcore3.0 webapi集成Swagger 5.0,Swagger使用

    Swagger使用 1.描述 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务. 作用: 1.接口的文档在线自动生成. 2.功能测试 本文转自 ...

  2. ASP.NET WebAPI 集成 Swagger 启用 OAuth 2.0 配置问题

    在 ASP.NET WebAPI 集成 Swagger 后,由于接口使用了 IdentityServer 做的认证,调试起来很不方便:看了下 Swashbuckle 的文档 ,是支持 OAuth2.0 ...

  3. asp.net core 2.0 webapi集成signalr

    asp.net core 2.0 webapi集成signalr   在博客园也很多年了,一直未曾分享过什么东西,也没有写过博客,但自己也是汲取着博客园的知识成长的: 这两天想着不能这么无私,最近.N ...

  4. 环境篇:Kylin3.0.1集成CDH6.2.0

    环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...

  5. WebApi 集成 Swagger

    1. Swagger(俗称:丝袜哥)是什么东西? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同 ...

  6. 如何使用webapi集成swagger

    现在B/S开发中,前后端分离无疑已经成为一种新的时尚,但是如何把后端开发的接口更好的提供给前段开发呢?还用接口文档?low了吧.不仅要花时间开发接口,还得花时间写文档,白花花的时间不久浪费了吗.如果接 ...

  7. webapi 集成swagger

    参考资料:Stack Overflow 我自己写的demo:SwaggerDemoApi 在已有的webapi项目或者创建webapi项目中,打开nuget管理器 搜索:swagger 安装截图中的插 ...

  8. Katana的WebAPI集成Swagger 解决方案

    这位大哥写的博客很清楚了,我就不重复了. http://www.cnblogs.com/caodaiming/p/4156476.html 错误解决 http://blog.csdn.net/gold ...

  9. Asp.Net Core2.0 WebAPI 使用Swagger生成漂亮的接口文档

    1.引用NuGet: Swashbuckle.AspNetCore.Swagger Swashbuckle.AspNetCore.SwaggerGen 或 <PackageReference I ...

随机推荐

  1. Tomcat上传文件报错:returned a response status of 403 Forbidden

    出现这样的错误是没有权限对服务器进行写操作.需要在这个项目所在的tomcat中配置可写操作即可: 在tomcat的web.xml添加下面代码: <init-param><param- ...

  2. Gym - 100781A Adjoin the Networks (树的直径)

    题意: n个点,m条边,m <= n <= 100000,边的长度都为1. 点从 0 ~ n-1 编号.开始时图是不连通的,并且没有环. 通过加入一些边后,可以使图连通.要求加入的边不能多 ...

  3. HBase0.94.2-cdh4.2.0需求评估测试报告1.0之四

    第二组:文件存储读过程记录 第一组:一个列,四个分区,随机ID 测试列和分区 测试程序或命令 导入文件大小(Mb) 导入文件个数(个) 是否触发flush事件(布尔) 是否触发compact事件(布尔 ...

  4. 【转】git bash here 右键菜单失效后的修复方法

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\git_shell] @="Git Ba&sh Here"   [ ...

  5. install mongodb on macos

    Update Homebrew’s package database. In a system shell, issue the following command: brew update 2 In ...

  6. HTTP和HTTPS以及两者的区别

    HTTP:是互联网上的应用广泛的一种网络协议,是一个客户端和服务器端请求和应答的传输协议,它可以使浏览器更加高效,使网络传输减少. HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版, ...

  7. xcode8.1 autolayout 找不到 Update Frames 按钮

  8. Leetcode17--->Letter Combinations of a Phone Number(电话号码对应的字母的组合)

    题目: 给定一个数字字符串,返回数字所能代表的所有字母组合: 举例: Input:Digit string "23" Output: ["ad", " ...

  9. python - 接口自动化 - 接口测试基础知识

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_接口测试基础知识一.py@ide: PyCharm Commun ...

  10. PHP全栈开发

     DAY01_PHP基础第一天                 01.了解php  00:09:26 ★  02.php的开发环境准备  00:13:47 ★  03.人人都会编程  00:10:26 ...