ASP.NET Core 2.2 WebApi 系列【五】MiniProfiler與Swagger集成


MiniProfiler

是一款性能分析的輕量級程序,可以基於action(request)記錄每個階段的耗時時長,還是可以顯示訪問數據庫時的SQL(支持EF、EF Code First)等

一、安裝程序包

通過Nuget安裝MiniProfiler :

Install-Package MiniProfiler.AspNetCore.Mvc

Install-Package MiniProfiler.EntityFrameworkCore

二、配置

在ConfigureServices方法中添加MiniProfiler服務,放在SwaggerGen方法之前

            // 添加MiniProfiler服務
            services.AddMiniProfiler(options =>
            {
                // 設定訪問分析結果URL的路由基地址
                options.RouteBasePath = "/profiler";
            }).AddEntityFramework();//顯示SQL語句及耗時

 

激活中間件,啟用MiniProfiler服務 放在SwaggerUI之前

            //把它放在UseMvc()方法之前。 
            app.UseMiniProfiler();

三、下載Swagger自定義頁面

https://github.com/tenghao6/NetCoreWebApi/blob/master/NetCoreWebApi/index.html

放到項目的根目錄,生成操作設置為:嵌入的資源

【文件】→【屬性】→【生成操作】

在Startup.cs文件中,我們需要修改UseSwaggerUI中間件的配置

            app.UseSwaggerUI(c =>
            {
                c.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("NetCoreWebApi.index.html");
                //訪問swagger UI的路由,如http://localhost:<port>/swagger
                //默認是swagger
                c.RoutePrefix = string.Empty;
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
                c.DefaultModelsExpandDepth(-1); //設置為 - 1 可不顯示models
                c.DocExpansion(DocExpansion.None); //設置為none可折疊所有方法
            });

 

注意:這里NetCoreWebApi是項目的命名空間名

重新啟動項目,Swagger文檔頁面的左上角就出現了一個小的面板,當請求接口之后,會顯示出當前請求的分析數據。

點擊sql(ms)下面的耗時,可查看詳細SQL信息:

 

 是不是很炫酷!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM