.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,谢谢。
关注我:一个全栈多端的宝藏博主,定时分享技术文章,不定时分享开源项目。关注我,带你认识不一样的程序世界
2024-09-13 08:50:35【出处】:https://www.cnblogs.com/cyzf/p/18410483
=======================================================================================
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/18411507
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
2023-09-13 SQL Server搭建故障转移群集
2023-09-13 Web自动化测试--selenium
2018-09-13 制作Visual Studio 2017 (VS 2017) 离线安装包
2015-09-13 Java运行环境绿色部署配置