العربية

أدوات المطور · JSON المنسق والمدقق

كيف تم استبدال JSON بـ XML باعتباره التنسيق الافتراضي لواجهات برمجة تطبيقات الويب

· خلفية

json المعايير تصديق

كيف تم استبدال JSON بـ XML باعتباره التنسيق الافتراضي لواجهات برمجة تطبيقات الويب الموضحة برموز JSON المميزة وحدود التحقق الدقيقة
الرسم التوضيحي المتجه الأصلي ToolAcre

قبل عشرين عامًا، كان XML هو التنسيق المفترض لأي شيء يتم إرساله بين الأنظمة. يتتبع هذا المنشور كيفية إزاحة JSON في واجهات برمجة تطبيقات الويب، والغرض الذي تم تصميم كل تنسيق من أجله، ولماذا لا يزال XML يهيمن على بعض النطاقات.

نقطة نهاية واحدة SOAP متبقية

تبقى نقطة نهاية واحدة SOAP - تكامل يتحدث XML في قاعدة التعليمات البرمجية حيث يتحدث كل شيء آخر JSON، والسؤال حول كيف وصلنا إلى هنا. غالبًا ما يظهر التباين في تعليمات العميل البرمجية: يقوم مسار واحد بإدارة المغلفات ومساحات الأسماء والأنواع التي تم إنشاؤها، بينما تتبادل نقاط النهاية الأحدث الكائنات العادية من خلال مكتبات HTTP خفيفة الوزن. تصف هذه الملاحظة بنية محلية، وليس تسلسلًا زمنيًا عالميًا.

يعالج المنسق JSON فقط؛ ينتمي التحويل عبر التنسيق إلى لوحة محولات Syntax المنفصلة. شعبية JSON لا تجعل XML قديمًا، كما أن الطباعة المحلية الجميلة لا تثبت صحة عقد API. تميز هذه المقالة بين التبني التاريخي والسلوك الأضيق المطبق على هذا المسار. يتم حذف المطالبات التاريخية غير المدعومة حول التواريخ الحاسمة أو الأسباب أو الاستبدال على مستوى السوق عمدًا أو تصحيحها بدلاً من استنتاجها من التخلف عن السداد في الوقت الحاضر.

ما تم إنشاء XML من أجله

الغرض الذي تم إنشاء XML من أجله - المستندات ذات المحتوى المختلط ومساحات الأسماء والمخططات ومسارات التحويل. يمكن أن تحتوي العناصر على كل من النص والعلامات الفرعية، ويمكن أن تحمل السمات بيانات التعريف، وتسمح الأسماء المؤهلة لمساحة الاسم بالتعايش مع المفردات. تدعم تقنيات مثل XML Schema وXPath وXSLT التحقق من الصحة والاستعلام والتحويل عبر مسارات العمل التي تركز على المستند.

لا تكون هذه القدرات مجانية عندما تكون الحمولة عبارة عن منشور أو مستند عمل موقع أو رسالة صناعية قابلة للتوسيع. إنها تفرض مفاهيم أكثر مما يتطلبه تبادل الكائنات والمصفوفات البسيط. لذلك يجب أن تأخذ مقارنة الأمثلة المكافئة العقد بعين الاعتبار، وليس مجرد عدد الأحرف: XML وJSON يكشفان عن أدوات مختلفة للنمذجة، ولا يوفر أي من بناء الجملة دلالات المجال الصحيحة تلقائيًا.

ما يمكن أن تفعله المتصفحات أصلا

ما يمكن أن تفعله المتصفحات محليًا - يمكن لـ XMLHttpRequest استرداد أي من التنسيقين النصيين، وتوفر المتصفحات التحليل XML DOM. تم أحيانًا تقييم كود JavaScript المبكر كنص يشبه JSON، وهي ممارسة غير آمنة عندما يكون الإدخال غير موثوق به؛ قدمت `JSON.parse` الموحدة لاحقًا محللًا مخصصًا. يتم تعيين JSON المحلل بشكل طبيعي إلى JavaScript المصفوفات والكائنات والسلاسل والأرقام والقيم المنطقية والقيمة الخالية.

يقلل هذا التعيين من مراسم العديد من تطبيقات المتصفح، لكنه ليس دليلاً على أن المتصفحات لم تكن قادرة على معالجة XML أو أن API وحده هو الذي حدد الاعتماد. XML تحافظ عناصر DOM على العناصر والسمات ومساحات الأسماء بدلاً من أن تصبح كائنات عادية تلقائيًا. تحتاج الادعاءات التاريخية حول السببية إلى مصادر تتجاوز سهولة التنفيذ، لذلك يتم حذف الإصدارات غير المدعومة أو تصحيحها هنا.

نقاط التحول — واجهات برمجة تطبيقات الويب العامة التي قدمت JSON إلى جانب XML، ثم JSON فقط، وREST مما أدى إلى إزاحة SOAP لمعظم الخدمات الجديدة

نقاط التحول - كشفت العديد من واجهات برمجة تطبيقات الويب العامة عن JSON إلى جانب XML، واختارت العديد من الخدمات اللاحقة JSON كتمثيل أساسي لها. أصبحت أنماط HTTP خفيفة الوزن شائعة أيضًا في واجهات برمجة تطبيقات التطبيقات بينما ظل SOAP في الأنظمة البيئية القائمة. تختلف حصص السوق الدقيقة والمحركات الأولى والتواريخ حسب المصدر ولا يمكن إنشاؤها من مستودع المنسق هذا.

وبناءً على ذلك، يتم حذف أو تصحيح الادعاءات التاريخية غير المدعومة بدلاً من تحويلها إلى قصة مرتبة ذات سبب واحد. الآلية التي يمكن الدفاع عنها هي ضغط قابلية التشغيل البيني: تعمل مكتبات العملاء والوثائق والأدوات والخدمات المجاورة على تعزيز التنسيق بمجرد توحيد الفرق حوله. يمكن أن تشرح هذه التعليقات الإعدادات الافتراضية المحلية دون الادعاء بأن XML اختفت أو أن كل REST API يستخدم JSON.

تكاليف التبديل

تكاليف التبديل — JSON ليس لها تمييز أصلي بين السمات والعناصر الفرعية، ولا يوجد نموذج محتوى مختلط ولا تركيب جملة للتعليق. القواعد النحوية الأساسية JSON أيضًا لا تحدد مخطط التطبيق. تضيف الفرق التي تحتاج إلى عقود أنظمة منفصلة مثل JSON المخطط أو OpenAPI، ولكل منها مفرداته وأدواته وقرارات الإصدار الخاصة به.

وبالتالي يمكن أن يفقد التحويل المعلومات ما لم يتم تصميم التعيينات بشكل صريح. قد تصبح عناصر XML المتكررة مصفوفات، والأسماء المؤهلة لمساحة الاسم تحتاج إلى تمثيل، ولا يمكن للنص المشذّر مع العلامات أن يصبح دائمًا كائنًا بسيطًا بشكل نظيف. إن بناء جملة الحمولة الأبسط ينقل بعض التعقيد إلى العقود أو الاتفاقيات الخارجية؛ فهو لا يجعل التحقق من الصحة والتطور والتوثيق غير ضروري.

حيث لا يزال XML يفوز

حيث لا يزال XML هو الفائز - تستفيد عمليات سير عمل النشر من المحتوى المختلط ومفردات المستندات الثابتة، بينما تقوم تنسيقات المكتب بحزم XML أجزاء لتمثيل المستندات الغنية. قد تعتمد معايير التمويل والرسائل المؤسسية الناضجة على مساحات الأسماء أو المخططات أو التوقيعات أو استثمارات الأدوات طويلة الأمد. سيتطلب استبدال الصيغة تنسيق النظام البيئي، وليس مجرد حمولة عينة أقصر.

يعد XML مفيدًا أيضًا عندما تكون التحويلات والاستعلامات المستندة إلى المسار أساسية في سير العمل. يمكن لـ JSON أن يخدم هذه النطاقات باتفاقيات إضافية، تمامًا كما يمكن لـ XML أن يخدم واجهات برمجة التطبيقات العادية، ولكن يجب أن تتجاوز قيمة الترحيل تكاليف العقد والأدوات. الشعبية في الخدمات التي تواجه المتصفح ليست دليلا على التفوق لكل مشكلة تمثيل، ويتم تصحيح أو حذف المطالبات غير المدعومة بالإزاحة الإجمالية.

ما لا يغطيه هذا

ما لا يغطيه هذا هو البدائل الثنائية مثل Protocol Buffers وMessagePack، والتي تتنافس بشروط مختلفة. يحتاج حجم السلك ومتطلبات المخطط وسلوك البث والأدوات إلى تقييم منفصل. ولا يقارن هذا بين اصطلاحات الوسائط التشعبية أو بروتوكولات النقل أو أنماط API؛ SOAP مقابل REST لا يعني ببساطة XML مقابل JSON، ويمكن أن ينتقل أي من التمثيلين عبر HTTP.

وهذا أيضًا ليس تاريخًا كميًا من مصادر اعتماد API. البيانات الدقيقة حول التواريخ أو النسب المئوية أو عمليات التنفيذ الأولى أو الأسباب على مستوى الصناعة غير مدعومة بأدلة المستودع المدرجة، لذلك يتم حذفها أو تصحيحها. بدلاً من ذلك، تشرح المقالة إمكانيات التنسيق التي يمكن ملاحظتها والعواقب الهندسية المعقولة دون تقديم تلك العواقب كدليل على السرد التاريخي الكامل.

الوجبات الجاهزة: JSON فاز بالبساطة، وليس الاكتمال

الخلاصة: أصبح JSON هو الإعداد الافتراضي الشائع للعديد من واجهات برمجة تطبيقات الويب من خلال نموذج بيانات مضغوط ودعم مباشر في اللغات السائدة وأدوات محيطة واسعة النطاق، وليس لأنه يحتوي على كل الميزات التي يقدمها XML. يظل XML مناسبًا عندما تكون بنية المستند أو مساحات الأسماء أو التحويلات أو المخططات المحددة مركزية. يتبع اختيار التنسيق العقد والنظام البيئي بدلاً من التصنيف العالمي.

يعكس ToolAcre نموذج JSON الضيق من خلال التحليل والتحقق من الصحة والطباعة الجميلة JSON على هذا المسار؛ ولا يصادق على دلالات API أو يجعل XML قديمًا. استخدم التحويل عبر التنسيق فقط عندما يحافظ التعيين المحدد على المعلومات المطلوبة. حافظ على التاريخ بنفس القدر من الحذر: يتم حذف أو تصحيح الادعاءات غير المدعومة حول نقاط التحول الفردية أو الاستبدال الكامل، مما يترك الآليات والسلوك الحالي الذي يمكن الدفاع عنه.