Validation des données en Rust : bibliothèque validator

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que la validation de données en Rust et pourquoi en a-t-on besoin ?

La validation de données est le processus de vérification de la correction des données d'entrée avant leur traitement. En Rust, un langage de programmation système axé sur la sécurité et la performance, la validation est particulièrement importante car elle aide à prévenir les erreurs logiques, les fuites de données et les plantages du programme. La bibliothèque validator fournit une approche déclarative pour vérifier les champs des structures à l'aide d'attributs, ce qui rend le code propre et maintenable.

Comment installer la bibliothèque validator ?

Ajoutez la dépendance dans le fichier Cargo.toml :

[dependencies]validator = "0.16"validator_derive = "0.16"

Exécutez ensuite la commande cargo build pour télécharger et compiler la bibliothèque.

Fonctionnalités principales de la bibliothèque

  • Validateurs intégrés : vérification de la longueur d'une chaîne (min/max), email, URL, plages numériques, expressions régulières et bien plus encore.
  • Attributs pour les structures : utilisez #[derive(Validate)] et les annotations de champs, par exemple #[validate(email)].
  • Validateurs personnalisés : créez vos propres fonctions pour des règles spécifiques.
  • Regroupement des erreurs : retourne une collection d'erreurs avec l'indication du champ et du message.
  • Prise en charge des structures imbriquées : validation récursive d'objets complexes.

Exemple de code en 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!("Données valides"), Err(errors) => { for (field, err) in &errors { println!("Erreur dans le champ {} : {:?}", field, err); } } }}

Dans cet exemple, la longueur du nom, le format de l'email et l'âge sont vérifiés. En cas de non-conformité, une liste d'erreurs est affichée.

Quand utiliser validator ?

  • Lors du développement d'API REST pour valider les requêtes entrantes.
  • Dans les fichiers de configuration (YAML, JSON) pour garantir la correction des paramètres.
  • Lors du traitement des entrées utilisateur — inscription, formulaires, commentaires.
  • Dans les analyseurs de données, où un contrôle strict des types et des formats est requis.
  • Dans les systèmes avec des exigences élevées en matière de sécurité et de fiabilité.

La bibliothèque validator est idéale pour les projets où la performance de Rust et la lisibilité du code sont importantes. Elle s'intègre facilement avec d'autres crates, par exemple serde pour la désérialisation.

Recommendations