TK TaskKit
أدوات المطورين

مدقّق JSON Schema

تحقّق من JSON بمقابل schema مع مسارات أخطاء كاملة. Draft-07 و 2020-12، فحوص التنسيق، ووضع جميع الأخطاء.

Schema
البيانات
التحقّق

تعذّر تجميع الـ schema: Code generation from strings disallowed for this context

إدخالاتك تبقى على جهازك. كل أدوات المطورين في TaskKit تعمل في متصفحك. الرموز والـ payloads وما تلصقه لا يُرسل لخوادم TaskKit ولا لأي طرف ثالث.

ما الذي تفعله هذه الأداة

تُتحقَّق وثيقة JSON بمقابل JSON Schema، وتُعيد إمّا «صالح» أو قائمة بالأخطاء مع مسار المثيل ومسار المخطط الدقيقَين لكل فشل. تدعم Draft-07 و Draft 2020-12 معاً، مع اكتشاف تلقائي من حقل $schema في المخطط، وإمكانية التجاوز اليدوي. فحوص التنسيق (email، uri، date-time، uuid، وغيرها) مفعّلة.

متى تستخدمها

  • تصميم مخطط جديد وتجربته على حمولات تمثيلية.
  • تشخيص سبب رفض API لطلب — هل يطابق الجسم فعلاً ما تقوله الوثائق؟
  • التأكد من أن ملف إعدادات يتبع مخطط فريقك قبل الإيداع.
  • الانتقال بين Draft-07 و 2020-12 والتأكد من عدم كسر شيء.

كيف تعمل

تحت الغطاء تستخدم الأداة Ajv (مدقّق JSON Schema الذي يقف خلف معظم أدوات JS)، مثبَّتاً على وضع جميع الأخطاء كي ترى كل المشاكل دفعة واحدة بدلاً من التوقّف عند أوّل خطأ. تأتي فحوص التنسيق من ajv-formats. يجري تحليل المخطط والبيانات محلياً؛ ولا يُرسَل شيء.

اختيار الإصدار: إذا كان للمخطط "$schema": "https://json-schema.org/draft/2020-12/schema" نستخدم لهجة 2020-12؛ و "http://json-schema.org/draft-07/schema#" تختار Draft-07. وعند غياب $schema نختار Draft-07 افتراضياً لأنها لا تزال الأكثر شيوعاً في الواقع.

ملاحظات

يفترض additionalProperties السماح — هل هذا صحيح؟ نعم، وفق المواصفة. إن أردت منع الحقول الإضافية فاضبط "additionalProperties": false صراحةً. هذا أكثر سبب وحيد لمفاجأة «ظننت أن مخططي صارم».

ما الفرق بين Draft-07 و 2020-12؟ يعيد 2020-12 صياغة المراجع ($dynamicRef)، ويفصل items إلى items و prefixItems، ويغيّر التعامل مع additionalItems. تعمل معظم المخططات اليومية في كليهما، لكن إن استخدمت التحقّق على شكل tuple فالنحو غير متوافق.

لماذا يطابق pattern لديّ أشياء مختلفة في مدقّقات مختلفة؟ يحدّد JSON Schema نحو ECMA-262 للتعابير المنتظمة (نكهة JavaScript). تترجمها مدقّقات اللغات الأخرى، أحياناً بشكل غير دقيق. اختبر الأنماط في اختبار التعابير المنتظمة للتأكد.

أدوات ذات صلة