ReValidator.Validation.MinimalApi
1.0.0
See the version list below for details.
dotnet add package ReValidator.Validation.MinimalApi --version 1.0.0
NuGet\Install-Package ReValidator.Validation.MinimalApi -Version 1.0.0
<PackageReference Include="ReValidator.Validation.MinimalApi" Version="1.0.0" />
<PackageVersion Include="ReValidator.Validation.MinimalApi" Version="1.0.0" />
<PackageReference Include="ReValidator.Validation.MinimalApi" />
paket add ReValidator.Validation.MinimalApi --version 1.0.0
#r "nuget: ReValidator.Validation.MinimalApi, 1.0.0"
#:package ReValidator.Validation.MinimalApi@1.0.0
#addin nuget:?package=ReValidator.Validation.MinimalApi&version=1.0.0
#tool nuget:?package=ReValidator.Validation.MinimalApi&version=1.0.0
ReValidator.Validation.MinimalApi
Dynamic, rule-based request validation for ASP.NET Minimal APIs using Endpoint Filters.
This package integrates ReValidator into Minimal APIs, allowing request DTOs to be validated using runtime-loaded rules instead of compiled validators or attributes.
Installation
dotnet add package ReValidator.Validation.MinimalApi
builder.Services.AddReValidator();
Basic usage
- Define a model
public class Person
{
public string? Name { get; set; }
public int Age { get; set; }
}
- Register a validation rule
Rules are injected at runtime and can be changed without redeploying the application.
app.Services.ApplyReconfiguration(
new DynamicReconfiguration
{
RuleName = "NameRequired",
PropertyName = "Name",
ErrorMessage = "The \"{PropertyName}\" is required",
Expression = "x => !string.IsNullOrWhiteSpace(x.Name)",
FullPathToModel = typeof(Person).FullName
});
- Enable validation on an endpoint
Validate a specific request type:
app.MapPost("/persons", (Person person) => Results.Ok())
.AddReValidator<Person>();
Or validate all request DTOs on the endpoint:
app.MapPost("/persons", (Person person) => Results.Ok())
.AddEndpointFilter<ReValidatorFilter>();
Validation result
If any rule fails, ReValidator returns:
422 Unprocessable Entity
With a standard validation payload:
{
"errors": {
"Name": [
"The \"Name\" is required"
]
}
}
When validation runs
Validation is executed only when:
.AddReValidator<T>()is applied.AddEndpointFilter<ReValidatorFilter>()is used
If no rules are registered for a model type, validation is skipped.
What this package provides
- Minimal API integration for
ReValidator - Endpoint filters for request validation
- Runtime rule execution using expressions
- Standardized HTTP 422 responses
ReValidator is designed for systems where validation rules must be managed outside of code and updated at runtime without redeployment.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net7.0
- ReValidator.Contracts (>= 1.0.1)
-
net8.0
- ReValidator.Contracts (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.