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

news2024/9/27 5:22:58

此博客是基于 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); // 文件 path
    c.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)使用了授权小锁后

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

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

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

相关文章

数据结构——初始树和二叉树

线性结构是一对一的关系&#xff0c;意思就是只有唯一的前驱和唯一的后继&#xff1b; 非线性结构&#xff0c;如树形结构&#xff0c;它可以有多个后继&#xff0c;但只有一个前驱&#xff1b;图形结构&#xff0c;它可以有多个前驱&#xff0c;也可以有多个后继。 树的定义…

进阶:反转二叉树的奇数层

目录标题 题目描述示例解题思路代码实现详细步骤解释复杂度分析 题目描述 给定一棵完美二叉树的根节点 root&#xff0c;请反转这棵树中每个奇数层的节点值。完美二叉树是指所有叶子节点都在同一层&#xff0c;并且每个非叶子节点都有两个子节点。 示例 示例 1&#xff1a; …

Harmony商城项目

目录&#xff1a; 1、启动项目看效果图2、代码分析 1、启动项目看效果图 2、代码分析 import CommonConstants from ../constants/CommonConstants; import WomanPage from ./components/WomanPage import ManPage from ./components/ManPage import HomePage from ./component…

Teams集成-会议侧边栏应用开发-实时转写

Teams虽然提供了转写的接口&#xff0c;但是不是实时的&#xff0c;即便使用订阅事件也不是实时的&#xff0c;为了达到实时转写的效果&#xff0c;使用recall.ai的转录和assembly_ai的转写实现。 前提&#xff1a;除Teams会议侧边栏应用开发-会议转写-CSDN博客的基本要求外&a…

实战教程!Zabbix 监控 Spark 中间件配置教程

本文将介绍以JMX方式监控Spark中间件。JMX具有跨平台、灵活性强、监控能力强、易于集成与扩展、图形化界面支持以及安全性与可配置性等多方面的优势&#xff0c;是监控Spark等复杂Java应用程序的重要工具之一。 Apache Spark 是一个开源的大数据处理框架&#xff0c;它提供了快…

【深度学习】ubuntu系统下docker部署cvat的自动标注功能(yolov8 segmentation)

cvat部署自动标注教程 前言step1. 拷贝yolov8项目step2. 创建yolov8的本地镜像step3. 在cvat中构建我们的工作空间 前言 安装docker和cvat的流程我这里就不赘述了&#xff0c;这样的教程还是挺多的&#xff0c;但是对于使用docker在cvat上部署自动标注算法的整个详细流程&#…

【MySQL】MVCC及其实现原理

目录 1. 概念介绍 什么是MVCC 什么是当前读和快照读 MVCC的好处 2. MVCC实现原理 隐藏字段 Read View undo-log 数据可见性算法 3. RC和RR隔离级别下MVCC的差异 4. MVCC&#xff0b;Next-key-Lock 防止幻读 1. 概念介绍 什么是MVCC Multi-Version Concurrency Cont…

通信工程学习:什么是FDD频分双工

FDD:频分双工 FDD(频分双工,Frequency Division Duplexing)是一种无线通信技术,它通过将频谱划分为上行和下行两个不重叠的频段来实现同时双向通信。以下是FDD频分双工的详细解释: 一、定义与原理 定义: FDD是一种无线通信系统的工作模式,其中上行链路(从移动…

以Flask为基础的虾皮Shopee“曲线滑块验证码”识别系统部署

以Flask为基础的虾皮Shopee“曲线滑块验证码”识别系统部署 一、验证码类型二、简介三、Flask应用 一、验证码类型 验证码类型&#xff1a;此类验证码存在两个难点&#xff0c;一是有右侧有两个凹槽&#xff0c;二是滑块的运动轨迹不是直线的&#xff0c;而是沿着曲线走的&…

您的业​​务端点是否完全安全?

根据 2023 年数据泄露调查报告&#xff0c;52% 的数据泄露涉及凭证泄露。这令人担忧&#xff0c;不是吗&#xff1f; 在当今的数字世界中&#xff0c;企业严重依赖技术&#xff0c;保护您的设备&#xff08;端点&#xff09;至关重要。这些设备&#xff08;包括计算机、笔记本…

MySQL从入门到精通 - 基础篇

一、MySQL概述 1. 数据库相关概念 二、SQL &#xff08;1&#xff09;SQL通用语法 &#xff08;2&#xff09;SQL分类 &#xff08;3&#xff09;数据定义语言DDL 数据库操作 表操作 数据类型 1. 数值类型 2. 字符串类型 二进制数据&#xff1a;以二进制格式&#xff08;0和…

uniapp 知识点

自定义导航 在page.json navigationstyle":"custom"navigateTo传参 页面传参只能onLoad(option)里面拿 px和upx的关系 在750设计图中&#xff0c;1px1upx 路由 navigateBack返回上一页 重定向 其实就是把当前页面干掉了 公共组件和页面共同点 computed,watc…

基于微信小程序的智能汽车充电站系设计与实现(源码+定制+文档)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

Spring Boot技术:构建高效网上购物平台

第3章 系统分析 3.1 可行性分析 在系统开发之初要进行系统可行分析&#xff0c;这样做的目的就是使用最小成本解决最大问题&#xff0c;一旦程序开发满足用户需要&#xff0c;带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。…

【Vue】Vue3 的初始化过程

核心流程是patch&#xff0c;然后Patch有一个分支&#xff0c;分别处理组件和浏览器原生标签。分别对应processElement和processComponent&#xff0c;从上到下插入&#xff0c;知道处理完成&#xff0c;才把顶层div插入到浏览器。“一次性渲染&#xff0c;而不是一个个一个渲染…

[论文笔记] Chain-of-Thought Reasoning without Prompting

分析: 在CoT解码路径中,我们可以看到模型在第三个位置(𝑖? = 3)开始展示推理过程,并且给出了正确的答案“8”。模型首先识别出说话者有3个苹果,然后识别出爸爸比说话者多2个,即5个苹果,最后将这两个数量相加得到总数8个苹果。 这个例子表明,通过探索替代的解码路径…

【每天学个新注解】Day 7 Lombok注解简解(六)—@With

With 创建一个新的对象&#xff0c;该对象是当前对象的副本&#xff0c;但某些字段的值可以被更改。 1、如何使用 With 可以使用在类上&#xff0c;也可以使用在成员变量上。加在类上相当于给所有成员变量 With可以配合AccessLevel使用&#xff0c;创建出指定访问修饰符的wi…

多模态大模型学习(一)

参考&#xff1a;https://www.bilibili.com/video/BV1kT411o7a6?p2&spm_id_frompageDriver&vd_source156234c72054035c149dcb072202e6be 余弦相似度&#xff0c;让正样本内积趋近于1&#xff0c;负样本趋近于-1。度量学习。N特别大时&#xff0c;负样本远大于正样本&…

PHP之 实现https ssl证书到期提醒,通过企微发送消息

参考文章 https://blog.51cto.com/17099933344/1935194 https://blog.csdn.net/m0_37346206/article/details/127333463 https://www.cnblogs.com/tk-bolg/p/18108106 使用的企微接口 https://qyapi.weixin.qq.com/cgi-bin/message/send 查询 ssl证书到期时间 // ssl证书即将…

基于BiLSTM+Transformer混合模型实现交通流量时序预测(PyTorch版)

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…