У меня есть библиотека классов с DTO. Для этих DTO я хочу использовать FluentValidation, чтобы гарантировать правильность вводимых пользователем данных.
Пример:
У меня есть DTO с именем AddValidationDTO в моей библиотеке классов
namespace MYCoolProjApi.Model.DTOs.Validation {
public class AddWstValidationDTO
{
public string? Name { get; set; }
public string? Regex { get; set; }
public string? AddedOrEditedBy { get; set; }
}
public class AddValidationDTOValidator : AbstractValidator
{
public WstAddValidationDTOValidator()
{
RuleFor(x => x.Name).NotNull().NotEmpty().WithMessage("Validation Name can't be null");
RuleFor(x => x.Regex).NotNull().NotEmpty().WithMessage("Regex can't be null");
}
}
}
В моем основном проекте, который представляет собой ASP.NET Web Api, я также установил пакет FluentAPI Nuget и добавил этот код в свой Program.cs:
builder.Services.AddFluentValidationAutoValidation();
builder.Services.AddFluentValidationClientsideAdapters();
builder.Services.AddValidatorsFromAssemblyContaining();
Когда я отправляю запрос к конечной точке, где должна быть создана новая проверка с неисправным DTO, я не получаю ошибку, и она сохраняется в базе данных. Это JSON, который я отправляю контроллеру:
{
"Name": "",
"AddedOrEditedBy": "MyUser"
}
Контроллер проверки:
[HttpPost("Add")]
public async Task AddValidation([FromBody] AddValidationDTO validationDTO)
{
await _validationService.AddValidation(validationDTO);
return Ok();
}
Подробнее здесь: https://stackoverflow.com/questions/750 ... -triggered