JSON Schema डिफ़
दो JSON Schema की तुलना कीजिए और देखिए क्या बदला, हर बदलाव पर ब्रेकिंग या नहीं का निशान लगा।
पुराना Schema
इस दस्तावेज़ के लिए सिंटैक्स रंग बंद है, क्योंकि इतने बड़े टेक्स्ट को हर कीस्ट्रोक पर दोबारा रंगने से टाइपिंग धीमी हो जाती। सभी टूल सामान्य रूप से काम करते रहेंगे।
नया Schema
इस दस्तावेज़ के लिए सिंटैक्स रंग बंद है, क्योंकि इतने बड़े टेक्स्ट को हर कीस्ट्रोक पर दोबारा रंगने से टाइपिंग धीमी हो जाती। सभी टूल सामान्य रूप से काम करते रहेंगे।
बदलाव
दो schema पेस्ट कीजिए और तुलना कीजिए दबाइए।
इस फ़िल्टर से कोई बदलाव मेल नहीं खाता।
यह पूरी तरह आपके ब्राउज़र में चलता है। आप जो पेस्ट करते हैं वह अपलोड नहीं होता, और आप इसे अपने ब्राउज़र के नेटवर्क टैब में देख सकते हैं।
इस टूल के बारे में
यह JSON Diff टूल नहीं है: वह दो दस्तावेज़ों की तुलना उनके मान से करता है। यह दो schema की तुलना इससे करता है कि वे क्या स्वीकार करेंगे, इसलिए हर बदलाव यह भी बताता है कि वह ब्रेकिंग है या नहीं, यानी क्या पुराने schema को संतुष्ट करने वाला दस्तावेज़ अब नए में असफल हो सकता है। schema में जोड़ी गई प्रॉपर्टी अपने आप में ब्रेकिंग नहीं है, क्योंकि मौजूदा डेटा के पास बस अभी वह नहीं है; हटाई गई प्रॉपर्टी तभी ब्रेकिंग है जब नया schema additionalProperties को भी false कर दे, क्योंकि तभी वह प्रॉपर्टी रखना अस्वीकृति बनता है। ज़रूरी बन जाने वाला फ़ील्ड ब्रेकिंग है, क्योंकि मौजूदा डेटा के पास वह नहीं हो सकता; अब ज़रूरी न रहने वाला फ़ील्ड नहीं है। number से integer जैसा संकरा होता टाइप ब्रेकिंग है; integer से number जैसा चौड़ा होता टाइप नहीं है, और JSON Schema के मूल टाइप में यह टूल बस यही एक सबटाइप संबंध जानता है। हटाया गया enum मान ब्रेकिंग है, क्योंकि उसे इस्तेमाल करता डेटा अब असफल होता है; जोड़ा गया मान नहीं है। कड़ी की गई बाध्यता, कम maximum या ज़्यादा minimum, ब्रेकिंग है; ढीली की गई नहीं है। pattern बदलाव को हमेशा ब्रेकिंग माना जाता है, क्योंकि यह जांचने की कोशिश नहीं की जाती कि कौन सा रेगुलर एक्सप्रेशन ज़्यादा स्वीकार करता है, और अनजान असर को सुरक्षित मानना गलत डिफ़ॉल्ट होता। जो कवर किया गया है वह जानबूझकर वही है जो साइट का अपना Schema Generator लिखता है और Schema Validator लागू करता है: schema-मान वाला additionalProperties, tuple-रूप वाला items, combinator और $ref, इनमें नहीं जाया जाता।
कैसे उपयोग करें
- पुराना schema बाएं पैनल में और नया दाएं पैनल में पेस्ट कीजिए, या नमूना लोड कीजिए।
- तुलना कीजिए दबाइए।
- पहले ब्रेकिंग बदलाव पढ़िए: सारांश पंक्ति उन्हें अलग गिनती है, और फ़िल्टर चिप सिर्फ़ वही पंक्तियां अलग कर देते हैं।