validator — Validação de dados em Rust

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é validator?

validator é uma biblioteca popular para validação de dados na linguagem Rust. Ela fornece ferramentas flexíveis e expressivas para verificar a correção de dados de entrada: strings, números, endereços de email, URLs, endereços IP, UUIDs e muito mais. A biblioteca é baseada em macros e traits, o que permite combinar facilmente regras de validação e criar verificações personalizadas.

Para que serve a validação de dados?

Em qualquer aplicação que trabalhe com entrada do usuário, API ou arquivos de configuração, é criticamente importante verificar os dados antes de usá-los. Erros de validação podem levar à falha do programa, vulnerabilidades ou funcionamento incorreto. A biblioteca validator ajuda a:

  • Garantir a integridade dos dados
  • Reduzir a quantidade de código boilerplate
  • Fornecer tratamento uniforme de erros
  • Simplificar os testes

Instalação

Adicione validator ao arquivo Cargo.toml:

[dependencies]validator = "0.18"serde = { version = "1.0", features = ["derive"] }

Também é comum usar serde para desserializar os dados antes da validação.

Funções principais

  • Atributos de validação — #[validate(...)] para campos de structs
  • Validadores embutidos: length, range, email, url, ip, uuid, contains, regex, custom
  • Validação aninhada — verificação recursiva de structs aninhadas
  • Validadores personalizados — através de funções ou closures
  • Agrupamento de erros — coleta de todos os erros de validação em um único objeto ValidationErrors

Exemplo de código em Rust

use validator::Validate;use serde::Deserialize;

#[derive(Debug, Deserialize, Validate)]struct User { #[validate(length(min = 2, max = 50))] name: String,

#[validate(email)] email: String,

#[validate(range(min = 13, max = 120))] age: u8,

#[validate(url)] website: Option<String>,}

fn main() { let user = User { name: "A".to_string(), email: "invalid-email".to_string(), age: 10, website: Some("not-a-url".to_string()), };

match user.validate() { Ok(_) => println!("Dados corretos"), Err(errors) => { for (field, errs) in errors.field_errors() { for err in errs { println!("Erro no campo {}: {}", field, err); } } } }}

Quando usar validator?

A biblioteca é ideal para:

  • Servidores web com Actix, Axum, Rocket
  • Processamento de formulários e requisições JSON
  • Análise de arquivos de configuração
  • Aplicações CLI com entrada do usuário
  • Validação de dados antes de gravar no banco de dados

Se você precisa verificar dados de forma rápida e confiável em Rust — validator será uma excelente escolha.

Recommendations