asp.net core webapi 完整Swagger配置

news/2025/3/20 22:19:37/文章来源:https://www.cnblogs.com/tlfe/p/18784086
在当前项目下新建Utility文件夹,Utility文件夹下面在创建SwaggerExt文件夹,文档结果如下

 CustomSwaggerExt.cs文件如下

using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Models;namespace xxxxxxxxxx
{/// <summary>/// 扩展Swagger/// </summary>public static class CustomSwaggerExt{/// <summary>/// 配置Swagger/// </summary>/// <param name="builder"></param>public static void AddSwaggerExt(this WebApplicationBuilder builder){builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen(option =>{typeof(ApiVersion).GetEnumNames().ToList().ForEach(version =>{option.SwaggerDoc(version, new OpenApiInfo(){Title = "xxxxxxxx-Api服务",Version = version,Description = $"通过版本的coreApi版本{version}"});});//读取根据api生成的控制器xml文件var file = Path.Combine(AppContext.BaseDirectory, "你的webapi解决方案名.xml");//显示控制器层注释option.IncludeXmlComments(file, true);//对action进行排序option.OrderActionsBy(r => r.RelativePath);option.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme{Description = "请输入token,格式为 【Bearer JWT字符串】(注意中间必须有空格)",Name = "Authorization",In = ParameterLocation.Header,Type = SecuritySchemeType.ApiKey,BearerFormat = "JWT",Scheme = "Bearer"});//添加安全要求option.AddSecurityRequirement(new OpenApiSecurityRequirement(){{new OpenApiSecurityScheme{Reference =new OpenApiReference{Type = ReferenceType.SecurityScheme,Id ="Bearer"}},new string[]{ }}});});}/// <summary>/// 中间件生效/// </summary>public static void UseSwaggerExt(this WebApplication app){app.UseSwagger();app.UseSwaggerUI(option =>{foreach (string version in typeof(ApiVersion).GetEnumNames().ToList()){option.SwaggerEndpoint($"/swagger/{version}/swagger.json", $"xxxx实战api第【{version}】版本");}});}}
}

ApiVersion.cs文件内容

namespace xxxxxxx
{public enum ApiVersion{V1,V2}
}

起启动文件Program.cs中使用

 

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

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

相关文章

ciscnccb半决赛

AWDP typo 一道2.31的堆题漏洞点位于edit功能,snprintf函数把用户输入作为format,导致了堆溢出以及格式化字符串漏洞fix 从程序的代码不难看出分配出来的堆,前面八个字节是堆的size,后面的空间才是数据域 这里原意是修改heap的size,但是用错了函数,我们修改最大读入的siz…

AI全天候智能助手,为您构建私人数据库

在数字化转型浪潮中,AI与大数据技术已成为企业提升效率、优化服务的核心引擎。思通数科凭借其自主研发的大数据智能系统,以AI为核心,打造了一站式解决方案,覆盖消费者服务、商家赋能与平台运营三大领域,助力用户与合作伙伴实现智能化升级。以下是该系统的核心功能与价值解…

安装 Prometheus监控主机服务

一、安装 Prometheus 下载 Prometheus 首先,访问 Prometheus 官网 获取最新版本的下载链接,然后使用 wget 下载:wget https://github.com/prometheus/prometheus/releases/download/v3.2.1/prometheus-3.2.1.linux-amd64.tar.gz解压并安装解压下载的文件:tar -xvzf prometh…

L1 通讲

好多,好多。L1 通讲 部分知识点速通 技术与产品开发的动机 ​ 这张图展示了两个长期趋势:技术和创新的发展速度逐渐变快; 它对我们的生活影响非常广泛,包括好的(如天花疫苗)和坏的(核弹?) 技术变得越来越强大。 例如,我们的祖先使用石制工具,但现在我们构建跨越全球…

Flink 实战之流式数据去重

流式数据是一种源源不断产生的数据,没有预定的开始与结束,至少理论上来说,它的数据输入永远不会结束。因此流式数据处理与传统的批处理技术不同,必须具备持续不断地对到达的数据进行处理的能力。因为流式数据源源不断地产生,对流式数据做去重就十分困难,因为一条数据重复…

vue3 + springboot 实现模糊查询与增加操作

实现表格查询: <!-- 表格 --><div class="card" style="margin-bottom: 5px"><el-table :data="data.tableData" stripe><el-table-column label="名称" prop="name" /><el-table-column lab…

网络基础与进阶

计算机网络入门与进阶 学习OSI网络模型相关概念(重点掌握) 学习TCP三次握手与四次挥手过程(重点掌握) 学习TCP的11种状态集转化(重点掌握) 学习DNS相关知识概念与原理 linux网关配置(添加网关 网段 以及网络主机路由) 修改网卡配置文件 用户访问www.baidu.com 整个过程…

VTK-8.2.0源码编译和初步使用(Cmake+VS2015+Qt5.14.2)

一、准备数据 1、首先确保已安装VS5015和Qt5.14.2 2、下载Cmake并安装:Download CMake 3、下载VTK-8.2.0源码和数据并解压:Download | VTK 二、Cmake构建 1、在本地磁盘创建相关文件夹2、进入源码根目录,找到CmakeList.txt,修改CmakeList.txt中的选项,使得Debug模式下生成…

B2043 判断能否被3,5,7整除

读者自己完善一下10、11、13、14行吧

20244113 实验一《Python程序设计》实验报告

课程:《Python程序设计》 班级: 2441 姓名: 咸润杰 学号:20244113 实验教师:王志强 实验日期:2025年3月20日 必修/选修: 公选课 1.实验内容 (1)熟悉Python开发环境; (2)下载python与pycharm,完成python开发环境搭建; (3)编写程序,练习变量和类型、字符串、对象…