Connect MiniProfiler to ASP.NET Core Web Swagger API

I only found this guide describing how to get MiniProfiler to work with the ASP.NET Web API and Swagger interface, but I didn't find any guide that describes how to get the MiniProfiler to work with the ASP.NET Web API with MiniProfiler to show the results in the Swagger user interface .

+6
source share
1 answer

All you need to do is configure your Swagger file index.htmlas described in the documentation . After creating a custom HTML file, add the following line to it:

<script async="async" id="mini-profiler" src="/profiler/includes.js?v=4.0.0.0" data-version="4.0.0.0" data-path="/profiler/" data-current-id="865f1487-f416-4d39-87fe-723e34847577" data-ids="" data-position="left" data-authorized="true" data-max-traces="15" data-toggle-shortcut="Alt+P" data-trivial-milliseconds="2.0" data-ignored-duplicate-execute-types="Open,OpenAsync,Close,CloseAsync"></script>

Basically the script above is the method output MiniProfiler.Current.RenderIncludes().

Below are the methods ConfigureServicesand Configureto see how both Swagger and Miniprofiler are configured.

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    // Register the Swagger generator, defining one or more Swagger documents
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
    });

    services.AddMiniProfiler(options => 
        options.RouteBasePath = "/profiler"
    );
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseMiniProfiler();
    }

    app.UseSwagger();
    app.UseSwaggerUI(c => {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
        c.IndexStream = () => GetType().GetTypeInfo().Assembly.GetManifestResourceStream("SOMpSwaggerNetCore.SwaggerIndex.html");
    });
    app.UseMvc();
}
+4
source

All Articles