O que é validação de dados em Rust e por que ela é necessária?
Validação de dados é o processo de verificar a correção dos dados de entrada antes de processá-los. Em Rust, uma linguagem de programação de sistemas com foco em segurança e desempenho, a validação é especialmente importante, pois ajuda a prevenir erros lógicos, vazamentos de dados e falhas do programa. A biblioteca validator fornece uma abordagem declarativa para verificar campos de structs usando atributos, o que torna o código limpo e sustentável.
Como instalar a biblioteca validator?
Adicione a dependência no arquivo Cargo.toml:
[dependencies]validator = "0.16"validator_derive = "0.16"Em seguida, execute o comando cargo build para baixar e compilar a biblioteca.
Principais funções da biblioteca
- Validadores embutidos: verificação de comprimento de string (min/max), email, URL, intervalos numéricos, expressões regulares e muito mais.
- Atributos para structs: use
#[derive(Validate)]e anotações de campos, por exemplo#[validate(email)]. - Validadores personalizados: crie suas próprias funções para regras específicas.
- Agrupamento de erros: retorna uma coleção de erros com indicação do campo e mensagem.
- Suporte para structs aninhadas: validação recursiva de objetos complexos.
Exemplo de código em Rust
use validator::Validate;
#[derive(Debug, Validate)]struct User { #[validate(length(min = 3, max = 20))] username: String, #[validate(email)] email: String, #[validate(range(min = 18, max = 120))] age: u8,}
fn main() { let user = User { username: String::from("al"), email: String::from("invalid-email"), age: 15, };
match user.validate() { Ok(_) => println!("Dados corretos"), Err(errors) => { for (field, err) in &errors { println!("Erro no campo {}: {:?}", field, err); } } }}Neste exemplo, são verificados o comprimento do nome, o formato do email e a idade. Em caso de não conformidade, uma lista de erros é exibida.
Quando usar o validator?
- Ao desenvolver uma REST API para verificar requisições recebidas.
- Em arquivos de configuração (YAML, JSON) para garantir a correção das configurações.
- Ao trabalhar com entrada do usuário — registro, formulários, comentários.
- Em parsers de dados, onde é necessário um controle rigoroso de tipos e formatos.
- Em sistemas com altos requisitos de segurança e confiabilidade.
A biblioteca validator é ideal para projetos onde o desempenho do Rust e a legibilidade do código são importantes. Ela se integra facilmente com outros crates, como serde para desserialização.