ASP0014: Suggest using top level route registrations

Value
Rule ID ASP0014
Category Usage
Fix is breaking or non-breaking Non-breaking

Cause

Routes can be registered directly at the top-level of a minimal API application.

Rule description

Routes can be registered directly at the top-level of a minimal API application and don't need to be nested within a UseEndpoints call.

var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

app.UseEndpoints(endpoints =>
{
    endpoints.MapGet("/", () => "Hello World!");
});

app.Run();

How to fix violations

To fix a violation of this rule, register the endpoints directly on the WebApplication.

var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.Run();

When to suppress warnings

Warnings from this rule can be suppressed if the target UseEndpoints invocation is invoked without any mappings as a strategy to organize middleware ordering.

var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

#pragma warning disable ASP0014
app.UseEndpoints(e => {});
#pragma warning restore ASP0014

app.Run();