validator क्या है?
validator Rust भाषा में डेटा सत्यापन के लिए एक लोकप्रिय लाइब्रेरी है। यह इनपुट डेटा की सटीकता जांचने के लिए लचीले और अभिव्यंजक उपकरण प्रदान करती है: स्ट्रिंग, संख्याएं, ईमेल पते, URL, IP पते, UUID और भी बहुत कुछ। यह लाइब्रेरी मैक्रोज़ और ट्रेट्स पर आधारित है, जो सत्यापन नियमों को आसानी से संयोजित करने और अपनी स्वयं की जांच बनाने की अनुमति देती है।
डेटा सत्यापन की आवश्यकता क्यों है?
कोई भी एप्लिकेशन जो उपयोगकर्ता इनपुट, API या कॉन्फ़िगरेशन फ़ाइलों के साथ काम करता है, उपयोग से पहले डेटा की जांच करना महत्वपूर्ण है। सत्यापन त्रुटियां प्रोग्राम क्रैश, सुरक्षा कमजोरियां या गलत संचालन का कारण बन सकती हैं। validator लाइब्रेरी इसमें मदद करती है:
- डेटा अखंडता सुनिश्चित करना
- boilerplate कोड की मात्रा कम करना
- त्रुटियों का समान प्रबंधन सुनिश्चित करना
- परीक्षण को सरल बनाना
स्थापना (Installation)
Cargo.toml फ़ाइल में validator जोड़ें:
[dependencies]validator = "0.18"serde = { version = "1.0", features = ["derive"] }सत्यापन से पहले डेटा को डीसीरियलाइज़ करने के लिए अक्सर serde का भी उपयोग किया जाता है।
मुख्य कार्यक्षमताएं
- सत्यापन विशेषताएँ (Validation Attributes) — स्ट्रक्ट के फ़ील्ड के लिए
#[validate(...)] - अंतर्निहित वैलिडेटर:
length,range,email,url,ip,uuid,contains,regex,custom - नेस्टेड सत्यापन — नेस्टेड स्ट्रक्ट की पुनरावर्ती जांच
- कस्टम वैलिडेटर — फ़ंक्शन या क्लोजर के माध्यम से
- त्रुटि समूहीकरण — सभी सत्यापन त्रुटियों को एक
ValidationErrorsऑब्जेक्ट में एकत्रित करना
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!("डेटा सही है"), Err(errors) => { for (field, errs) in errors.field_errors() { for err in errs { println!("फ़ील्ड {} में त्रुटि: {}", field, err); } } } }}validator का उपयोग कब करें?
यह लाइब्रेरी इसके लिए आदर्श है:
- Actix, Axum, Rocket पर वेब सर्वर
- फ़ॉर्म और JSON अनुरोधों की प्रक्रिया
- कॉन्फ़िगरेशन फ़ाइलों का पार्सिंग
- उपयोगकर्ता इनपुट वाले CLI एप्लिकेशन
- DB में लिखने से पहले डेटा का सत्यापन
यदि आपको Rust में जल्दी और विश्वसनीय रूप से डेटा जांचने की आवश्यकता है — validator एक उत्कृष्ट विकल्प होगा।
```