翼度科技»论坛 编程开发 .net 查看内容

.net core8 使用Swagger(附当前源码)

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
说明

   该文章是属于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,并保存。
  1. /// <summary>
  2. /// 模块分组
  3. /// </summary>
  4. public enum ModeuleGroupEnum
  5. {
  6.     SysMenu = 1,
  7. }
复制代码
随后在SwaggerPlugInUnit中编写一个方法,具体代码如下
  1. /// <summary>
  2. /// swagger插件
  3. /// </summary>
  4. public static class SwaggerPlugInUnit
  5. {
  6.     /// <summary>
  7.     /// 初始化Swagger
  8.     /// </summary>
  9.     /// <param name="services"></param>
  10.     public static void InitSwagger(this IServiceCollection services)
  11.     {
  12.         //添加swagger
  13.         services.AddSwaggerGen(optinos =>
  14.         {
  15.             typeof(ModeuleGroupEnum).GetEnumNames().ToList().ForEach(version =>
  16.             {
  17.                 optinos.SwaggerDoc(version, new OpenApiInfo()
  18.                 {
  19.                     Title = "权限管理系统",
  20.                     Version = "V2.0",
  21.                     Description = "求关注,求一键三连",
  22.                     Contact = new OpenApiContact { Name = "微信公众号作者:不只是码农   b站作者:我不是码农呢", Url = new Uri("http://www.baidu.com") }
  23.                 });
  24.             });
  25.             //反射获取接口及方法描述
  26.             var xmlFileName = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
  27.             optinos.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFileName), true);
  28.         });
  29.     }
  30.     /// <summary>
  31.     /// swagger加入路由和管道
  32.     /// </summary>
  33.     /// <param name="app"></param>
  34.     public static void InitSwagger(this WebApplication app)
  35.     {
  36.         app.UseSwagger();
  37.         app.UseSwaggerUI(options =>
  38.         {
  39.             typeof(ModeuleGroupEnum).GetEnumNames().ToList().ForEach(versoin =>
  40.             {
  41.                 options.SwaggerEndpoint($"/swagger/{versoin}/swagger.json", $"接口分类{versoin}");
  42.             });
  43.         });
  44.     }
  45. }
复制代码
  1. 然后再program中使用自定义swagger中间件<br><img src="https://img2024.cnblogs.com/blog/1158526/202409/1158526-20240912161439487-2111244537.png" alt="">
复制代码
   做好以上步骤,我们的swagger基本算是搭建好了,只需要在控制器上方,添加路由和分组。
  1. /// <summary>
  2. /// 系统模块
  3. /// </summary>
  4. [ApiController]
  5. [Route("api/[controller]/[action]")]
  6. [ApiExplorerSettings(GroupName = nameof(ModeuleGroupEnum.SysMenu))]
复制代码

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

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

 
  好了,以上就是搭建WebApi+优化Swagger的全部过程,你快来试试吧
如果对你有帮助,请关注我吧(*^▽^*)。

源代码地址:https://gitee.com/yangguangchenjie/overall-auth2.0-web-api  

帮我Star,谢谢。
 
有兴趣的朋友,请关注我吧(*^▽^*)。

关注我:一个全栈多端的宝藏博主,定时分享技术文章,不定时分享开源项目。关注我,带你认识不一样的程序世界

来源:https://www.cnblogs.com/cyzf/p/18410483
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具