इस लेख में
YAML क्या है और इसे सत्यापित क्यों करें
YAML, जिसका पूरा नाम YAML Ain't Markup Language है, एक मानव-अनुकूल डेटा सीरियलाइज़ेशन प्रारूप है जिसका व्यापक रूप से कॉन्फ़िगरेशन फ़ाइलों, CI/CD पाइपलाइनों, इन्फ़्रास्ट्रक्चर ऐज़ कोड और डेटा आदान-प्रदान के लिए उपयोग होता है। इसका इंडेंटेशन-आधारित सिंटैक्स इसे पठनीय बनाता है, पर साथ ही यह इसे ऐसी व्हाइटस्पेस त्रुटियों के प्रति बेहद संवेदनशील भी बना देता है जो नंगी आँखों से नहीं दिखतीं।
तैनाती से पहले YAML सत्यापित करना अत्यंत महत्वपूर्ण है, क्योंकि एक भी गलत जगह पर रखा गया खाली स्थान या गलत इंडेंट स्तर किसी कॉन्फ़िगरेशन को उद्देश्य से भिन्न रूप में पार्स करवा सकता है, या उसे पूरी तरह पार्स होने से रोक सकता है। Kubernetes मैनिफ़ेस्ट, Docker Compose स्टैक या GitHub Actions वर्कफ़्लो में एक टूटी हुई YAML फ़ाइल सेवाओं को ठप कर सकती है या तैनाती को रोक सकती है।
YAML वैलिडेटर कैसे काम करता है
वैलिडेटर आपके YAML इनपुट को पार्स करता है और सटीक पंक्ति तथा स्तंभ संख्याओं के साथ सिंटैक्स त्रुटियाँ बताता है, ताकि आप समस्याओं को तुरंत ठीक कर सकें।
- अपना YAML पेस्ट करें — किसी भी आकार की YAML सामग्री दर्ज करें या पेस्ट करें और वैलिडेटर उसे तुरंत आपके ब्राउज़र में ही पार्स कर देता है
- त्रुटि विवरण देखें — यदि YAML गलत ढंग से बनी है, तो वैलिडेटर ठीक उसी पंक्ति और स्तंभ को स्पष्ट त्रुटि संदेश के साथ चिह्नित करता है जहाँ पार्सर विफल हुआ
- संरचना सत्यापित करें — सिंटैक्स से आगे बढ़कर, वैलिडेटर दोहराई गई कुंजियों, गलत प्रकारों और अन्य संरचनात्मक समस्याओं की जाँच करता है जो अप्रत्याशित व्यवहार पैदा कर सकती हैं
- आउटपुट को फ़ॉर्मैट करें — वैध YAML को समान इंडेंटेशन के साथ स्वतः स्वरूपित किया जाता है ताकि आप एक साफ़-सुथरा संस्करण वापस अपने प्रोजेक्ट में कॉपी कर सकें
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
YAML वैलिडेटर खोलें →आम YAML त्रुटियाँ और उन्हें कैसे ठीक करें
YAML सिंटैक्स देखने में जितना सरल लगता है उतना है नहीं, और वास्तविक कॉन्फ़िगरेशन फ़ाइलों में कई त्रुटि पैटर्न बार-बार सामने आते हैं।
- इंडेंटेशन की गलतियाँ — YAML नेस्टिंग के लिए रिक्त स्थानों का उपयोग करता है, और टैब को रिक्त स्थानों के साथ मिलाना या असमान इंडेंट स्तरों का उपयोग करना पार्स विफलता का सबसे आम कारण है
- बिना उद्धृत विशेष वर्ण — कोलन, हैश या कर्ली ब्रैकेट वाले मानों को उद्धृत किया जाना चाहिए, ताकि पार्सर उन्हें YAML सिंटैक्स के रूप में न समझे
- दोहराई गई कुंजियाँ — YAML एक ही स्तर पर दोहराई गई कुंजियों की अनुमति देता है पर केवल अंतिम मान ही रखा जाता है, जो पहले के मानों को चुपचाप अधिलेखित कर देता है और मुश्किल से पकड़ में आने वाले बग पैदा करता है
अक्सर पूछे जाने वाले प्रश्न
YAML और JSON में क्या अंतर है?
YAML, JSON का एक सुपरसेट है, यानी हर वैध JSON दस्तावेज़ एक वैध YAML भी है। YAML में टिप्पणियाँ, बहु-पंक्ति स्ट्रिंग, एंकर और इंडेंटेशन-आधारित नेस्टिंग जैसी सुविधाएँ जुड़ी हैं जो इसे अधिक मानव-पठनीय बनाती हैं। JSON अधिक सख़्त है और API द्वारा अधिक व्यापक रूप से समर्थित है, जबकि YAML को उन कॉन्फ़िगरेशन फ़ाइलों के लिए प्राथमिकता दी जाती है जहाँ पठनीयता मायने रखती है।
क्या मैं YAML में इंडेंटेशन के लिए टैब का उपयोग कर सकता हूँ?
नहीं। YAML विनिर्देश इंडेंटेशन के लिए टैब वर्णों को स्पष्ट रूप से प्रतिबंधित करता है। आपको रिक्त स्थानों का उपयोग करना होगा, और एक दस्तावेज़ के भीतर प्रति इंडेंट स्तर रिक्त स्थानों की संख्या समान होनी चाहिए। अधिकांश एडिटर को Tab कुंजी दबाने पर रिक्त स्थान डालने के लिए कॉन्फ़िगर किया जा सकता है।
क्या वैलिडेटर बहु-दस्तावेज़ YAML का समर्थन करता है?
हाँ। YAML फ़ाइलों में तीन-डैश विभाजक से अलग किए गए कई दस्तावेज़ हो सकते हैं। वैलिडेटर प्रत्येक दस्तावेज़ को स्वतंत्र रूप से पार्स करता है और पूरी फ़ाइल के सापेक्ष सही पंक्ति संख्याओं के साथ त्रुटियाँ बताता है।