< Summary

Information
Class: ProjectTemplate.Web.Extensions.PipelineExtensions
Assembly: ProjectTemplate.Web
File(s): /home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Web/Extensions/PipelineExtensions.cs
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 61
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
UseApplicationPipeline(...)100%11100%

File(s)

/home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Web/Extensions/PipelineExtensions.cs

#LineLine coverage
 1using ProjectTemplate.Web.Authentication.Extensions;
 2using ProjectTemplate.Web.ErrorHandling;
 3
 4namespace ProjectTemplate.Web.Extensions;
 5
 6/// <summary>
 7/// Provides extension methods to configure the application's middleware pipeline
 8/// with a predefined ordering suitable for this template.
 9/// </summary>
 10public static class PipelineExtensions
 11{
 12    /// <summary>
 13    /// Configures the middleware pipeline for the specified <see cref="WebApplication"/>.
 14    /// The ordering includes forwarded headers, request logging, exception handling,
 15    /// security headers, HTTPS redirection, static files, routing, rate limiting, and
 16    /// (optionally) authentication/authorization and endpoint mapping.
 17    /// </summary>
 18    /// <param name="app">The <see cref="WebApplication"/> to configure.</param>
 19    /// <returns>The same <see cref="WebApplication"/> instance for chaining.</returns>
 20    public static WebApplication UseApplicationPipeline(this WebApplication app)
 21    {
 22        // 1. Proxy/load balancer correction must happen early.
 14823        app.UseApplicationForwardedHeaders();
 24
 25        // 2. Structured request logging should see corrected scheme, host, and client IP.
 14226        app.UseApplicationRequestLogging();
 27
 28        // 3. Centralized exception handling.
 14229        app.UseApplicationErrorHandling();
 14230        app.UseProblemDetails();
 31
 32        // 4. Optional security response headers.
 14233        app.UseApplicationSecurityHeaders();
 34
 35        // 5. HTTPS enforcement.
 14236        app.UseHttpsRedirection();
 37
 38        // 6. Static files before routing if using MVC/Razor UI.
 14239        app.UseStaticFiles();
 40
 41        // 7. Routing.
 14242        app.UseRouting();
 43
 44        // 8. CORS, when needed, should be after routing and before auth.
 14245        app.UseCors();
 46
 47        // 9. Rate limiting after routing when endpoint-specific policies are used.
 14248        app.UseRateLimiter();
 49
 50        // 10. Authentication and authorization.
 14251        app.UseApplicationAuthentication();
 12852        app.UseAuthorization();
 53
 54        // 11. Endpoint mapping.
 12855        app.MapControllers();
 12856        app.MapRazorPages();
 57
 12858        return app;
 59    }
 60}
 61