ASP.NET Core and OpenAPI
Install the integrations you use:
dotnet add package Valiant.Validation.AspNetCore
dotnet add package Valiant.Validation.AspNetCore.OpenApi
Minimal APIs
Register validators and attach validation to a route:
builder.Services.AddValiantValidators();
app.MapPost("/users", (CreateUser request) => Results.Created())
.WithValiantValidation();
The non-generic overload validates every eligible handler argument with a registered validator. Use the typed overload to select one request type explicitly:
app.MapPost("/users", (CreateUser request, CancellationToken cancellationToken) =>
Results.Created())
.WithValiantValidation<CreateUser>();
Failures return HTTP validation problem details before the handler runs.
MVC
Register the global model-validation filter directly or through MVC builders:
builder.Services.AddValiantValidators();
builder.Services.AddValiantMvcValidation();
// Equivalent integration point:
builder.Services.AddControllers().AddValiantValidation();
Problem details helpers
Use ValiantProblemDetails when your endpoint or controller validates manually:
var result = await validator.ValidateAsync(request, cancellationToken);
if (!result.IsValid)
{
return Results.ValidationProblem(result.ToValidationProblemDictionary());
}
Helpers are available for Minimal API HttpValidationProblemDetails, MVC ValidationProblemDetails, and property-to-message dictionaries.
OpenAPI
builder.Services.AddOpenApi();
builder.Services.AddValiantOpenApi();
Or attach the transformer to a specific OpenAPI document:
builder.Services.AddOpenApi(options =>
options.AddValiantValidationRules());
Valiant projects generated metadata into native constraints where possible—such as required, length, count, and comparison bounds—and preserves richer details in x-valiant-rules extensions.
Each integration package forwards the core Valiant runtime and generator assets. Add both ASP.NET Core packages when you need request validation and OpenAPI; do not add a redundant direct Valiant.Validation reference.
The Validation sample catalog links the Minimal API, MVC, problem-details, and OpenAPI startup implementations.