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

MiniProfiler

是一款性能分析的轻量级程序,能够基于action(request)记录每一个阶段的耗时时长,仍是能够显示访问数据库时的SQL(支持EF、EF Code First)等html

1、安装程序包

经过Nuget安装MiniProfiler :git

Install-Package MiniProfiler.AspNetCore.Mvcgithub

Install-Package MiniProfiler.EntityFrameworkCoresql

2、配置

在ConfigureServices方法中添加MiniProfiler服务,放在SwaggerGen方法以前数据库

            // 添加MiniProfiler服务
            services.AddMiniProfiler(options =>
            {
                // 设定访问分析结果URL的路由基地址
                options.RouteBasePath = "/profiler";
            }).AddEntityFramework();//显示SQL语句及耗时

 

激活中间件,启用MiniProfiler服务 放在SwaggerUI以前json

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

3、下载Swagger自定义页面

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

放到项目的根目录,生成操做设置为:嵌入的资源性能

【文件】→【属性】→【生成操做】spa

在Startup.cs文件中,咱们须要修改UseSwaggerUI中间件的配置3d

            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信息:

 

 是否是很炫酷!

相关文章
相关标签/搜索