Kotlin में डेटा सत्यापन: लाइब्रेरीज़ और दृष्टिकोण

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

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

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

Kotlin में डेटा सत्यापन: लाइब्रेरीज़ का अवलोकन और व्यावहारिक उदाहरण

\n

डेटा सत्यापन विश्वसनीय अनुप्रयोगों के विकास का एक प्रमुख पहलू है। Kotlin पारिस्थितिकी तंत्र में कई परिपक्व लाइब्रेरीज़ मौजूद हैं जो सत्यापन नियमों को घोषणात्मक रूप से वर्णित करने की अनुमति देती हैं, जिससे डेवलपर को बॉयलरप्लेट कोड से मुक्ति मिलती है। इस लेख में हम तीन लोकप्रिय टूल्स पर विचार करेंगे: Konform, Valiktor और Kotlinx Validation, साथ ही चर्चा करेंगे कि कब और कौन सा टूल चुनना चाहिए।

\n\n

1. Konform — Arrow पर आधारित कार्यात्मक सत्यापन

\n

Konform लाइब्रेरी कार्यात्मक फ्रेमवर्क Arrow पर आधारित है। यह त्रुटियों को संचित करने के लिए Validated अवधारणा का उपयोग करती है और सरल और नेस्टेड डेटा संरचनाओं दोनों का समर्थन करती है।

\n\n

स्थापना

\n
// build.gradle.kts\nimplementation("io.konform:konform:0.4.0")
\n\n

उपयोग का उदाहरण

\n
import io.konform.validation.*\n\ndata class User(\n    val name: String,\n    val email: String,\n    val age: Int\n)\n\nval userValidation = Validation<User> {\n    User::name {\n        minLength(2) hint "नाम में कम से कम 2 अक्षर होने चाहिए"\n        maxLength(50) hint "नाम 50 अक्षरों से अधिक नहीं होना चाहिए"\n    }\n    User::email {\n        pattern(Regex("^[\\\\w.-]+@[\\\\w.-]+\\\\.\\\\w{2,}$")) hint "अमान्य ईमेल"\n    }\n    User::age {\n        minimum(18) hint "आयु कम से कम 18 वर्ष होनी चाहिए"\n        maximum(120) hint "कृपया वास्तविक आयु बताएं"\n    }\n}\n\nfun main() {\n    val user = User("A", "invalid-email", 15)\n    val result = userValidation(user)\n    \n    if (result.errors.isNotEmpty()) {\n        result.errors.forEach { error ->\n            println("फ़ील्ड: ${error.path} — ${error.message}")\n        }\n    } else {\n        println("सत्यापन सफलतापूर्वक पूर्ण हुआ")\n    }\n}
\n\n

विशेषताएँ

\n
    \n
  • सत्यापनों की संरचना के लिए Arrow के साथ पूर्ण एकीकरण
  • \n
  • नेस्टेड ऑब्जेक्ट और सूचियों का समर्थन
  • \n
  • टाइप-सुरक्षित DSL निर्माण
  • \n
  • सभी त्रुटियों का संचय (पहली त्रुटि पर नहीं रुकता)
  • \n
\n\n

2. Valiktor — fluent API के साथ अनिवार्य सत्यापन

\n

Valiktor fluent इंटरफ़ेस का उपयोग करके अधिक पारंपरिक दृष्टिकोण प्रदान करता है। लाइब्रेरी को कार्यात्मक निर्भरताओं की आवश्यकता नहीं है और Java से परिचित डेवलपर्स के लिए सीखना आसान है।

\n\n

स्थापना

\n
implementation("org.valiktor:valiktor-core:0.12.0")
\n\n

उपयोग का उदाहरण

\n
import org.valiktor.functions.*\nimport org.valiktor.validate\n\ndata class Order(\n    val id: String,\n    val amount: Double,\n    val items: List<String>\n)\n\nfun validateOrder(order: Order) {\n    validate(order) {\n        validate(Order::id).isNotBlank().hasSize(10..36)\n        validate(Order::amount).isPositive().isLessThanOrEqualTo(10000.0)\n        validate(Order::items).isNotEmpty().hasSize(1..50)\n    }\n}\n\nfun main() {\n    val order = Order("", -100.0, emptyList())\n    try {\n        validateOrder(order)\n        println("ऑर्डर सही है")\n    } catch (e: Exception) {\n        println("सत्यापन त्रुटि: ${e.message}")\n    }\n}
\n\n

विशेषताएँ

\n
    \n
  • कार्यात्मक अमूर्तता के बिना सरल और स्पष्ट API
  • \n
  • पहली त्रुटि पर अपवाद फेंकता है (fail-fast मोड)
  • \n
  • एक्सटेंशन के माध्यम से कस्टम सत्यापनकर्ताओं का समर्थन
  • \n
  • Java परियोजनाओं के साथ आसान एकीकरण
  • \n
\n\n

3. Kotlinx Validation — JetBrains की आधिकारिक लाइब्रेरी

\n

हालाँकि Kotlinx Validation परियोजना अभी प्रायोगिक चरण में है, यह पहले से ही एनोटेशन और रिफ्लेक्शन के साथ एक दिलचस्प दृष्टिकोण प्रदान करती है, जो Javax Validation (Bean Validation) की याद दिलाता है।

\n\n

स्थापना

\n
implementation("org.jetbrains.kotlinx:kotlinx-validation:0.1.0")
\n\n

उपयोग का उदाहरण

\n
i                    

अनुशंसाएँ