当前位置: 首页 > news >正文

Swagger配置且添加小锁(asp.net)(笔记)

此博客是基于 asp.net core web api(.net core3.1)框架进行操作的。

一、安装Swagger包

在 NuGet程序包管理中安装下面的两个包:

swagger包:Swashbuckle.AspNetCore

swagger包过滤器:Swashbuckle.AspNetCore.Filters

二、swagger注册

在 Startup.cs文件的 ConfigureServices方法中进行 swagger注册。

#region swagger注入
services.AddSwaggerGen(c =>
{#region 添加文档信息   c.SwaggerDoc("v1", new OpenApiInfo{Title = "aspNetCURD",Version = "v1",Description = "RESTful API"});#endregion#region 添加 Controller注释var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";  // 获取 项目名 + .xml 的文件var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); // 文件 pathc.IncludeXmlComments(xmlPath); // 添加 Controller注释#endregion#region 添加 swagger小锁  不需要授权的可以不要小锁var openApiSecurity = new OpenApiSecurityScheme{Description = "JWT认证授权,使用直接在下框中输入Bearer {token}(注意两者之间是一个空格)\"",Name = "Authorization",  //jwt 默认参数名称In = ParameterLocation.Header,  //jwt默认存放Authorization信息的位置(请求头)Type = SecuritySchemeType.ApiKey};c.AddSecurityDefinition("oauth2", openApiSecurity);c.OperationFilter<AddResponseHeadersFilter>();c.OperationFilter<AppendAuthorizeToSummaryOperationFilter>();c.OperationFilter<SecurityRequirementsOperationFilter>();#endregion});
#endregion

三、swagger 注入管道

在 app.UseRouting() 之后,app.UseEndpoints() 之前,将swagger注入管道。

app.UseRouting();#region swagger管道注入
// 启用Swagger中间件
app.UseSwagger();// 配置SwaggerUI
app.UseSwaggerUI(c =>
{c.SwaggerEndpoint("/swagger/v1/swagger.json", "aspNetCURD");c.RoutePrefix = string.Empty; //路由前缀设置为空
});
#endregion

四、在项目的属性中添加 .xml路径

打开项目的属性,找到 生成/输出,在 "XML文档文件路径" 处配置上 xml路径。

XML文档文件路径为:项目名称 + .xml

五、最后效果

(1)没有使用授权小锁时

(2)使用了授权小锁后

#若有错误或不足,欢迎大佬斧正。

相关文章:

  • 遥感图像语义分割数据集制作(使用ArcGIS Pro)
  • 只申请一块sizeofimage的内存能否实现PE文件的拉伸
  • 【PyTorch】生成对抗网络
  • C++游戏开发详解:从入门到实践
  • c++primier第十二章类和动态内存
  • openKylin--安装 .net6.0
  • 锁住K8S集群版本和系统内核版本
  • 生产环境升级mysql流程及配置主从服务
  • 【深度学习】ubuntu系统下docker部署cvat的自动标注功能(yolov8 segmentation)
  • 投影算子 Projection
  • CMake构建学习笔记18-cpp-httplib库的构建
  • CC攻击和DDOS攻击的区别有哪些?
  • [单master节点k8s部署]22.构建EFK日志收集平台(一)
  • 河南人社厅:注册满两年可按条件认定副高
  • 【Python报错已解决】TypeError: object of type ‘complex‘ has no len()
  • 网络传输文件的问题
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【面试系列】之二:关于js原型
  • Github访问慢解决办法
  • JAVA_NIO系列——Channel和Buffer详解
  • java取消线程实例
  • js操作时间(持续更新)
  • Linux下的乱码问题
  • nginx 配置多 域名 + 多 https
  • vagrant 添加本地 box 安装 laravel homestead
  • 动态魔术使用DBMS_SQL
  • 解决iview多表头动态更改列元素发生的错误
  • 区块链将重新定义世界
  • 我与Jetbrains的这些年
  • 一些关于Rust在2019年的思考
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • #、%和$符号在OGNL表达式中经常出现
  • #etcd#安装时出错
  • (3)(3.5) 遥测无线电区域条例
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计大学生兼职系统
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (一)Linux+Windows下安装ffmpeg
  • (转)用.Net的File控件上传文件的解决方案
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net语言中的StringBuilder:入门到精通
  • @NotNull、@NotEmpty 和 @NotBlank 区别
  • []串口通信 零星笔记
  • [8] CUDA之向量点乘和矩阵乘法
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [C++提高编程](三):STL初识
  • [cb]UIGrid+UIStretch的自适应
  • [CocosCreator]Android的增加AndroidX的动态权限
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [delphi]保证程序只运行一个实例
  • [Excel VBA]如何使用VBA按行拆分Excel工作表