.net8系列-04图文并茂手把手教你配置Swagger支持token以及实现Swagger扩展,Swagger代码单独抽离

news/2024/5/20 8:53:01

前情提要

接上篇文章,我们当前已完成如下内容:

  • 创建应用成功
  • 创建接口成功
  • 配置Swagger实现接口注释和版本控制
    本文章主要内容为:
  • 配置Swagger支持token传值测试接口

快速上手-代码配置

添加如下代码

文件目录:\xiaojinWebApplication\xiaojinWebApplication\Program.cs

 // Swagger token传值功能 --- start{option.AddSecurityDefinition("Bearer", new Microsoft.OpenApi.Models.OpenApiSecurityScheme(){Description = "请输入正确的Token格式: Bearer xxx",Name = "Authorization",In = Microsoft.OpenApi.Models.ParameterLocation.Header,Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey,BearerFormat = "JWT",Scheme = "Bearer"});// 安全要求option.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement{{new OpenApiSecurityScheme{Reference = new OpenApiReference(){Type = ReferenceType.SecurityScheme,Id = "Bearer"}},new string[]{}}});}// Swagger token传值功能 --- end

运行测试Token传值功能

打开接口测试页面

配置Token


观察页面

我们发现Swagger页面上面每个接口后都多了一把小锁,如果接口后面的小锁没有锁上的话,请检查代码里的option.AddSecurityRequirement配置

接口Token传值测试

调用接口测试,我们发现接口调用的时候已经带上Token了

Swagger扩展(代码逻辑抽离复用)

创建Swagger扩展文件夹


添加类

创建SwaggerExtention.cs


查看Swagger相关配置代码

经过分析,我们发现它的配置都是基于 builder.Services ,我们可以编写一个函数,参数为 builder.Services 的所属类型IServiceCollection

编写代码

namespace xiaojinWebApplication.WebCore.SwaggerExtention
{public class SwaggerExtention{public static void addSwaggerExtention(IServiceCollection Service){}}
}

将之前逻辑复制到代码中


发现报错

找不到IServiceCollection类型,是因为我们的这个扩展没有安装依赖项,所以我们需要安装依赖

安装依赖项

目前内容较少,所以我们基于solution去安装依赖项



安装成功

修改代码,解决报错


using Microsoft.Extensions.DependencyInjection;// 需要补充
using Microsoft.OpenApi.Models;// 需要补充
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;// 需要补充public static void addSwaggerExtention(Microsoft.Extensions.DependencyInjection.IServiceCollection Service) // 需要修改

去掉原有逻辑,使用封装函数执行逻辑

SwaggerExtention.addSwaggerExtention(builder.Services);

重启,运行成功


好啦,到这里,我们的Swagger部分代码逻辑已经成功抽离出来成为一个扩展了~

结语

  • 今天就写到这里啦~
  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

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

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

相关文章

.net报错异常及常用功能处理总结(持续更新)

@目录1. WebApi dynamic传参解析结果中ValueKind = Object处理方法问题描述方案1:(推荐,改动很小)方案2:2.C# .net多层循环嵌套结构数据对象如何写对象动态属性赋值问题描述JavaScript动态属性赋值.net动态属性赋值3.Object.GetType().GetProperty().GetValue()读取对象报错…

百度昆仑、华为NPU

百度昆仑、华为NPU 为智能计算而生的昆仑芯XPU架构 昆仑芯科技团队于2017年在Hot Chips上发布自研的、面向通用AI计的芯片核心架构——昆仑芯XPU。 集十余年AI加速研发实践,昆仑芯XPU从AI落地的实际需求出发,按照复杂前沿的人工智能场景需求开展迭代, 致力为开发者提供通用、…

计算机(电脑)硬件组成基本介绍4

详细介绍的计算机(电脑)硬件组成.电源插座为主板提供供电的电源接口目前,主板电源接口插座主要采用ATX电源接口, ATX电源接口一般为24针电源插座、8 针电源插座、4针电源插座等,主要为主板提供5V、 12V、3.3V 电压等. ATX 电源都支持软件关机功能。目前,双核CPU 主板上的…

计算机(电脑)硬件组成基本介绍3

详细介绍的计算机(电脑)硬件组成.重要接口SATA连接大容量存储设备的SATA接口SATA (Serial ATA)接口即串行ATA,它是目前硬盘采用的一种新型的接口类型。SATA接口主要采用连续串行的方式传输数据,这样在同一时间点内只会有1位数据传输,此做法能减小接口的针脚数目,用4个针…

计算机(电脑)硬件组成基本介绍1

详细介绍的计算机(电脑)硬件组成。目录目录操作系统与硬件及应用程序软件的关系电脑各个设备之间关系 如何评价一台电脑? 通过CPU型号看性能 通过 CPU 主频评价 通过内存容量评价 通过显卡芯片及显存容量评价 通过显示器评价 中央处理器 存储器 输入设备 输出设备 接口…

Ubuntu24.04系统Docker安装nextcloud+onlyoffice

1.Ubuntu系统下载 Ubuntu镜像站大全 我用的是山东大学的镜像站 我下的是desktop版本就是有GUI图形界面,如果不需要可以下载server版本2.开启SSH启用root用户远程登陆 由于我使用远程工具MobaXterm进行连接,所以安装完系统后需要开启SSH,如果你不需要使用远程工具远程可以跳过…

WindowsPE重装Windows系统详细介绍

本文详细介绍了WindowsPE、UEFI BIOS、如何制作WindowsPE、网络唤醒WOL、如何格式化硬盘及分区 、GHost还原数据、驱动程序分类相关知识目录目录理论知识 什么是WindowsPE? 什么是UEFI BIOS?(简)实操 如何制作WindowsPE? 如何进入BIOS? 常用项介绍 设置U盘启动 网络…

存储器数据恢复相关知识

讲述硬盘基本结构及其储存理论,介绍如何恢复常用存储器数据。目录目录理论知识 硬盘如何储存数据? 磁道和扇区简介 盘面号 磁道 柱面 扇区 硬盘如何读写数据? 数据删除原理 数据如何丢失的? 人为原因造成的数据丢失: 自然灾害造成的数据丢失: 软件原因造成…