.net core8 使用Swagger(附当前源码)
说明
该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发)。
该系统文章,我会尽量说的非常详细,做到不管新手、老手都能看懂。
说明:OverallAuth2.0 是一个简单、易懂、功能强大的权限+可视化流程管理系统。
有兴趣的朋友,请关注我吧(*^▽^*)。
使用前提
1、Visual Studio使用2022版本
搭建项目
OverallAuth2.0依然和OverallAuth1.0一样,采用前后端分离模式,所以搭建后端,我们选择 .net core web api(如下图)

选择项目模板后,我们点击【下一步】

选择.net 8.0(最新长期支持版本),随后创建项目
默认项目结构如下图

直接运行,查看默认界面

运行起来可以看到,系统默认的swagger界面非常简介,也少了很多信息比如:
1、系统说明、版本、作者等。
2、接口的描述、参数等信息。
3、接口的分类等。
优化Swagger
上面说道,系统默认的接口文档是非常简洁的,接下来我们在系统中,这样做,让swagger看起来更优美和专业。
在项目下新增一个文件件PlugInUnit,然后再该文件夹下新建一个类SwaggerPlugInUnit。
建好SwaggerPlugInUnit后,在webapi同级建一个类库Utility,用于存放系统的辅助工具等,然后再该类库下建一个Enum文件夹,并新建ModeuleGroupEnum该枚举。
如图:

建好文件后,在ModeuleGroupEnum文件中写一个枚举SysMenu,并保存。
/// <summary>
/// 模块分组
/// </summary>
public enum ModeuleGroupEnum
{
SysMenu = 1,
}
随后在SwaggerPlugInUnit中编写一个方法,具体代码如下
/// <summary>
/// swagger插件
/// </summary>
public static class SwaggerPlugInUnit
{
/// <summary>
/// 初始化Swagger
/// </summary>
/// <param name="services"></param>
public static void InitSwagger(this IServiceCollection services)
{
//添加swagger
services.AddSwaggerGen(optinos =>
{
typeof(ModeuleGroupEnum).GetEnumNames().ToList().ForEach(version =>
{
optinos.SwaggerDoc(version, new OpenApiInfo()
{
Title = "权限管理系统",
Version = "V2.0",
Description = "求关注,求一键三连",
Contact = new OpenApiContact { Name = "微信公众号作者:不只是码农 b站作者:我不是码农呢", Url = new Uri("http://www.baidu.com") }
}); }); //反射获取接口及方法描述
var xmlFileName = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
optinos.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFileName), true); });
} /// <summary>
/// swagger加入路由和管道
/// </summary>
/// <param name="app"></param>
public static void InitSwagger(this WebApplication app)
{
app.UseSwagger();
app.UseSwaggerUI(options =>
{
typeof(ModeuleGroupEnum).GetEnumNames().ToList().ForEach(versoin =>
{
options.SwaggerEndpoint($"/swagger/{versoin}/swagger.json", $"接口分类{versoin}");
});
});
}
}
然后再program中使用自定义swagger中间件
做好以上步骤,我们的swagger基本算是搭建好了,只需要在控制器上方,添加路由和分组。
/// <summary>
/// 系统模块
/// </summary>
[ApiController]
[Route("api/[controller]/[action]")]
[ApiExplorerSettings(GroupName = nameof(ModeuleGroupEnum.SysMenu))]

做完以上这些,我们对swagger就算优化完成,只需要运行系统,就可以查看效果

注意:必须生成接口的xml文件,不然会报错。

好了,以上就是搭建WebApi+优化Swagger的全部过程,你快来试试吧
如果对你有帮助,请关注我吧(*^▽^*)。
源代码地址:https://gitee.com/yangguangchenjie/overall-auth2.0-web-api
帮我Star,谢谢。
有兴趣的朋友,请关注我吧(*^▽^*)。

关注我:一个全栈多端的宝藏博主,定时分享技术文章,不定时分享开源项目。关注我,带你认识不一样的程序世界
.net core8 使用Swagger(附当前源码)的更多相关文章
- 在WebBrowser中执行javascript脚本的几种方法整理(execScript/InvokeScript/NavigateScript) 附完整源码
[实例简介] 涵盖了几种常用的 webBrowser执行javascript的方法,详见示例截图以及代码 [实例截图] [核心代码] execScript方式: 1 2 3 4 5 6 7 8 9 1 ...
- Asp.net MVC集成Google Calendar API(附Demo源码)
Asp.net MVC集成Google Calendar API(附Demo源码) Google Calendar是非常方便的日程管理应用,很多人都非常熟悉.Google的应用在国内不稳定,但是在国外 ...
- winserver的consul部署实践与.net core客户端使用(附demo源码)
winserver的consul部署实践与.net core客户端使用(附demo源码) 前言 随着微服务兴起,服务的管理显得极其重要.都知道微服务就是”拆“,把臃肿的单块应用,拆分成多个轻量级的 ...
- C#代码生成器附百度云盘源码地址
今晚闲着没事,写了个代码生成器,在这里只做个抛砖引玉,后面可以继续扩展功能,下方附百度云盘源码地址. 使用数据库:sqlserver 编译器:vs2015 废话不多说,上界面: 程序主界面: 数据库: ...
- 单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件)
单独编译和使用webrtc音频降噪模块(附完整源码+测试音频文件) 单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件) 说实话很不想写这篇文章,因为这和我一贯推崇的最好全部编译并使用w ...
- 单独编译和使用webrtc音频降噪模块(附完整源码+测试音频文件)
单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件) 单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件) webrtc的音频处理模块分为降噪ns,回音消除aec,回声 ...
- 单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件)
webrtc的音频处理模块分为降噪ns和nsx,回音消除aec,回声控制acem,音频增益agc,静音检测部分.另外webrtc已经封装好了一套音频处理模块APM,如果不是有特殊必要,使用者如果要用到 ...
- Spring Boot整合ElasticSearch和Mysql 附案例源码
导读 前二天,写了一篇ElasticSearch7.8.1从入门到精通的(点我直达),但是还没有整合到SpringBoot中,下面演示将ElasticSearch和mysql整合到Spring Boo ...
- 用Assert(断言)封装异常,让代码更优雅(附项目源码)
有关Assert断言大家并不陌生,我们在做单元测试的时候,看业务事务复合预期,我们可以通过断言来校验,断言常用的方法如下: public class Assert { /** * 结果 = 预期 则正 ...
- ios官方菜单项目重点剖析附项目源码
原版教程:https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift ...
随机推荐
- [oeasy]python0080_设置RGB颜色_24bit_24位真彩色_颜色设置
RGB颜色 回忆上次内容 上次 首先了解了 索引颜色 \33[38;5;XXXm 设置 前景为索引色 \33[48;5;XXXm 设置 背景为索引色 RGB每种颜色 可选0-5 总共 6 级 想用 精 ...
- oeasy教您玩转vim - 24 - 自定颜色
自定颜色 回忆上节课内容 这次我们研究了配色方案 找到了 colors 的位置 下载并应用了颜色方案 制作了自己的配色方案 下面我想修改配色方案的颜色 是否能成功??? 首先得有自己的颜色方案 #找到 ...
- 常见的SQL数值型数据处理函数
在数据驱动的时代,SQL 已成为数据分析和管理中不可或缺的工具.无论是处理简单的查询还是复杂的数据分析,SQL 都能帮助我们高效地完成任务. 然而,在处理数值型数据时,你是否感到过困惑,不知道如何运用 ...
- Pandas库学习笔记(1)
参考:菜鸟教程 pandas库使用了NumPy的大多数功能.建议您先阅读有关NumPy的教程,然后再继续本教程. Pandas 适用于处理以下类型的数据: 与 SQL 或 Excel 表类似的,含异构 ...
- c++ 17 demo
1 // Cpp.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. 2 // 3 4 #include <iostream> 5 #includ ...
- 青少年CTF擂台挑战赛 2024 #Round 1
青少年CTF擂台挑战赛 2024 #Round 1 crypto 1.解个方程 题目: 欢迎来到青少年CTF,领取你的题目,进行解答吧!这是一道数学题!! p = 474356125652182661 ...
- Java---杂记
1. 当System.out.println()方法的参数是Object类型时,println()方法会自动调用Object对象的toString()方法,然后显示toString()方法返回的字符串 ...
- 【Phoenix】4.14.1-Hbase-1.3版本 安装
Phoenix 版本 会附带Hbase版本,要根据安装的Hbase版本下载Phoenix 下载Phoenix wget http://archive.apache.org/dist/phoenix/a ...
- Jupyter Lab和Jupyter Notebook的区别
JupyterLab与Jupyter Notebook:详细比较 简介 Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含实时代码.方程.可视化和解释性文本的文档.Ju ...
- 植物大战僵尸杂交版v2.1整合包全解锁+高清工具
植物大战僵尸杂交版v2.1整合包全解锁+高清工具 引言 <植物大战僵尸>作为一款经典的塔防游戏,自2009年发布以来,就以其独特的游戏机制和幽默的风格赢得了全球玩家的喜爱.随着游戏的不 ...
