Centeva.RequestValidation
3.0.0
Prefix Reserved
dotnet add package Centeva.RequestValidation --version 3.0.0
NuGet\Install-Package Centeva.RequestValidation -Version 3.0.0
<PackageReference Include="Centeva.RequestValidation" Version="3.0.0" />
<PackageVersion Include="Centeva.RequestValidation" Version="3.0.0" />
<PackageReference Include="Centeva.RequestValidation" />
paket add Centeva.RequestValidation --version 3.0.0
#r "nuget: Centeva.RequestValidation, 3.0.0"
#:package Centeva.RequestValidation@3.0.0
#addin nuget:?package=Centeva.RequestValidation&version=3.0.0
#tool nuget:?package=Centeva.RequestValidation&version=3.0.0
Centeva Request Validation
Centeva.RequestAuthorization is a .NET library that provides a method for validating MediatR requests using FluentValidation. This enables validation at the request level instead of inside ASP.Net Core controllers, separating validation logic from the presentation layer.
Built With
Installation
Import the Centeva.RequestValidation package to your projects where needed.
Dependency Injection
Register the validators and add a MediatR pipeline behavior in your Program.cs:
builder.Services.AddRequestValidation(typeof(SampleValidator).Assembly);
NOTE: If you're also using Centeva.RequestAuthorization, you likely want
to call the above method first, then add the Authorization behavior. This
ensures that validation happens first in your MediatR pipeline.
Validating a Request
To validate a request, add a validator class to your project that inherits from
AbstractValidator<TRequest>, where TRequest is the type of request you want
to validate. For example:
public class SampleValidator : AbstractValidator<SampleRequest>
{
public SampleValidator()
{
RuleFor(x => x.Name).NotEmpty();
}
}
If validation fails, a ValidationException will be thrown. Your application
is responsible for handling those exceptions, possibly by mapping to a custom
HTTP response or a ProblemDetails object.
Validating with Result Types
If your request handler returns a Result or Result<T> type (from the
Ardalis.Result library), then validation
failures will be returned as an invalid Result containing the validation
errors instead of a thrown exception.
This allows you to handle validation errors in a more functional style, without
relying on exceptions for control flow.
var result = await _mediator.Send(new SampleRequest());
if (!result.IsInvalid)
{
// Do something here with result.ValidationErrors
}
// Respond normally here
Contributing
Please use a Pull Request to suggest changes to this library. As this is a shared library, strict semantic versioning rules should be followed to avoid unexpected breaking changes.
Running Tests
From Windows, use the dotnet test command, or your Visual Studio Test
Explorer.
Deployment
This library is versioned by GitVersion. Create a Git tag for an official release (e.g., "v1.0.0"). Version numbers can be incremented via commit message using the GitVersion approaches.
Resources
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net8.0
- Ardalis.Result.FluentValidation (>= 10.1.0)
- FluentValidation.DependencyInjectionExtensions (>= 12.1.1)
- MediatR (>= 12.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.