DEV Community

Juarez Júnior for Develop4Us

Posted on • Edited on

Validação Simples e Fluente com FluentValidation

O FluentValidation é uma biblioteca que permite a validação de objetos de forma fluente e expressiva. Com o FluentValidation, você pode criar regras de validação separadas da lógica de negócios, mantendo seu código mais limpo e organizado. A biblioteca é extensível e fácil de usar, suportando diversas formas de validação, como checagens de propriedades obrigatórias, tamanhos, valores, entre outras. Neste exemplo, veremos como configurar e usar o FluentValidation para validar uma classe de dados simples.

Bibliotecas:

Para usar a biblioteca FluentValidation, instale o seguinte pacote NuGet no seu projeto:

Install-Package FluentValidation 
Enter fullscreen mode Exit fullscreen mode

Código de Exemplo:

using FluentValidation; using System; public class Produto { public string Nome { get; set; } public decimal Preco { get; set; } } public class ProdutoValidator : AbstractValidator<Produto> { public ProdutoValidator() { // Definindo regras de validação RuleFor(p => p.Nome) .NotEmpty().WithMessage("O nome do produto é obrigatório.") .Length(3, 50).WithMessage("O nome do produto deve ter entre 3 e 50 caracteres."); RuleFor(p => p.Preco) .GreaterThan(0).WithMessage("O preço deve ser maior que zero."); } } class Program { static void Main(string[] args) { // Criando um produto de exemplo var produto = new Produto { Nome = "Laptop", Preco = -10 }; // Validando o produto var validator = new ProdutoValidator(); var resultados = validator.Validate(produto); if (!resultados.IsValid) { foreach (var erro in resultados.Errors) { Console.WriteLine($"Erro: {erro.ErrorMessage}"); } } else { Console.WriteLine("Produto válido!"); } } } 
Enter fullscreen mode Exit fullscreen mode

Explicação do Código:

Neste exemplo, criamos uma classe Produto com as propriedades Nome e Preco. A classe ProdutoValidator, que herda de AbstractValidator, define as regras de validação para o objeto Produto. Validamos que o Nome não pode ser vazio e deve ter entre 3 e 50 caracteres, e que o Preco deve ser maior que zero. No método Main, criamos um objeto Produto com um valor de preço inválido e, em seguida, utilizamos o ProdutoValidator para validar o objeto. Se houver erros de validação, eles serão exibidos no console.

Conclusão:

O FluentValidation é uma excelente ferramenta para validar objetos de forma fluente e clara. Ele permite separar as regras de validação da lógica de negócios, o que resulta em um código mais organizado e de fácil manutenção. Sua sintaxe simples e extensível facilita a criação de validações poderosas e flexíveis para diversas situações.

Código fonte: GitHub

Top comments (0)