Skip to main content

Minimal APIs, organized by feature

Valiant Endpoints gives every ASP.NET Core Minimal API endpoint a small class and generates deterministic route registration. Group vertical slices, apply conventions once, exclude features at startup, and bind query shapes that ASP.NET Core does not handle by default.

using Valiant.Endpoints;
using Valiant.Endpoints.AspNetCore;

[ValiantEndpoint<TodosEndpointGroup>]
internal sealed class ListTodosEndpoint : IEndpoint
{
public static IEndpointConventionBuilder Map(IEndpointRouteBuilder builder) =>
builder.MapGet("/", () => Results.Ok());
}
builder.Services.AddValiantEndpoints();

var app = builder.Build();
app.MapValiantEndpoints();

What it covers

CapabilityAPI
Generated discovery[ValiantEndpoint], [ValiantEndpoint<TGroup>], [ValiantEndpointGroup]
Route organizationIEndpoint, IEndpointGroup, standalone and grouped routes
Shared policyGroup and endpoint configuration hooks over the returned route builders
Feature switchesSeparate startup predicates for generated groups and endpoints
Multiple assembliesExplicit registration and mapping overloads
Query compatibilityArrays, nested objects, JSON opt-in, parser, serializer, and structured errors
Request bindingOpt-in generated BindAsync, [AsParameters] repair, and complex [FromQuery] shims; native ASP.NET Core binding by default

Documentation map

The sample catalog covers every selectable startup in the runnable endpoint-per-class host, including generated binding and intentional conditional exclusions.