說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
說明
該文章是屬於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,謝謝。
有興趣的朋友,請關註我吧(*^▽^*)。
關註我:一個全棧多端的寶藏博主,定時分享技術文章,不定時分享開源項目。關註我,帶你認識不一樣的程式世界