validator — Rust में डेटा सत्यापन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें
```html

validator क्या है?

validator — यह Rust में डेटा सत्यापन के लिए एक लोकप्रिय लाइब्रेरी है, जो इनपुट डेटा की सटीकता की जाँच करने का एक सरल और अभिव्यंजक तरीका प्रदान करती है। यह मैक्रोज़ और एनोटेशन पर आधारित है, जो डेटा संरचनाओं में ही सत्यापन नियमों का वर्णन करने की अनुमति देता है। लाइब्रेरी स्ट्रिंग की लंबाई, संख्याओं की सीमा, रेगुलर एक्सप्रेशन, अनिवार्य फ़ील्ड और कस्टम वैलिडेटर जैसी जाँचों का समर्थन करती है।

सत्यापन की आवश्यकता क्यों है?

किसी भी एप्लिकेशन में जो बाहरी डेटा (उपयोगकर्ता इनपुट, API अनुरोध, कॉन्फ़िगरेशन फ़ाइलें) के साथ काम करता है, उस डेटा को प्रोसेस करने से पहले उसकी सटीकता की जाँच करना महत्वपूर्ण है। सत्यापन त्रुटियाँ प्रोग्राम क्रैश, सुरक्षा कमजोरियाँ या गलत लॉजिक का कारण बन सकती हैं। validator केंद्रीय रूप से नियमों का वर्णन करने, समझने योग्य त्रुटि संदेश स्वचालित रूप से उत्पन्न करने और boilerplate कोड से बचने की अनुमति देता है।

स्थापना (Installation)

Cargo.toml में जोड़ें:

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

इसका उपयोग अक्सर डेटा को deserialize करने के लिए serde के साथ भी किया जाता है।

मुख्य कार्य

  • सत्यापन विशेषताएँ (Validation Attributes): #[validate(length(min = 1, max = 100))], #[validate(range(min = 18, max = 99))], #[validate(email)], #[validate(regex = "...")] और अन्य।
  • कस्टम वैलिडेटर: #[validate(custom = "my_function")] विशेषता के माध्यम से।
  • नेस्टेड सत्यापन: उन संरचनाओं के लिए जिनमें अन्य संरचनाएँ होती हैं।
  • त्रुटियों का समूहीकरण: फ़ील्ड के अनुसार विवरण के साथ 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 = 18, max = 120))] age: u8,

#[validate(required)] #[validate(length(min = 8))] password: Option<String>,}

fn main() { let user = User { name: "A".to_string(), // बहुत छोटा email: "invalid".to_string(), age: 15, password: Some("123".to_string()), };

match user.validate() { Ok(_) => println!("डेटा सही है"), Err(errors) => { for (field, err_list) in errors.field_errors() { println!("फ़ील्ड '{}' में त्रुटियाँ हैं:", field); for err in err_list { println!(" - {}", err.message.as_ref().unwrap_or(&"अज्ञात त्रुटि".to_string())); } } } }}

validator का उपयोग कब करें?

  • REST API बनाते समय (उदाहरण के लिए, Actix-web, Axum, Rocket के साथ) आने वाले JSON अनुरोधों की जाँच के लिए।
  • CLI एप्लिकेशन में कमांड लाइन तर्कों के सत्यापन के लिए।
  • सर्वर-साइड फॉर्म प्रोसेसिंग करते समय।
  • कहीं भी जहाँ न्यूनतम कोड के साथ घोषणात्मक डेटा जाँच की आवश्यकता होती है।

यह लाइब्रेरी उन प्रोजेक्ट्स के लिए आदर्श है जहाँ सुरक्षा और कोड पठनीयता महत्वपूर्ण है। यह सक्रिय रूप से समर्थित है और Rust पारिस्थितिकी तंत्र में व्यापक रूप से उपयोग की जाती है।

```

अनुशंसाएँ