إيجي تاج · اعرف. ناقش. جرّب. نفّذ.
دليل

JSON Schema كحاجز جودة قبل إرسال بيانات إلى API

التحقق المحلي من type و required و format يمنع طلبات معروفة الخطأ، لكنه لا يغني عن validation server-side أو قواعد business.

دليل عملي

التحقق المحلي من type وrequired وformat يمنع طلبات معروفة الخطأ، لكنه لا يغني عن validation server-side أو قواعد business.

4خطوات
عمليالمستوى

عند بناء Web Postman أو Automation ترسل JSON، أخطاء مثل string بدل number أو حقل required مفقود يمكن اكتشافها قبل الشبكة. JSON Schema يوفر عقدًا machine-readable يمكن استخدامه للتحقق وتوليد UI أو أمثلة. لكنه يصف الشكل أكثر من منطق الأعمال.

ابدأ بالأنواع والحقول

حدد object properties و required و additionalProperties حسب الحاجة. لا تجعل كل شيء optional لتجنب errors؛ schema ضعيفة لا تضيف قيمة.

استخدم constraints مفيدة

minLength و pattern و minimum و enum تساعد عندما تكون جزءًا حقيقيًا من API. لا تنسخ validation UI بلا فهم؛ server قد يملك قواعد مختلفة.

تعامل مع Versions

Schema تتطور مع API. اربطها بإصدار endpoint أو response metadata. لا validate payload v2 ضد schema v1 ثم تلوم المستخدم.

خطوات عملية

  1. حدد API version.
  2. حمل schema المناسبة.
  3. validate.
  4. اعرض errors بمسار field.

فرق Syntax عن Business Rules

Schema يمكن أن تقول endDate string، لكنها لا تعرف دائمًا أنها بعد startDate إلا عبر extensions أو logic إضافي. حافظ على طبقة business validation منفصلة.

اعرض Errors قابلة للإصلاح

بدل invalid JSON، اعرض /items/3/price يجب أن يكون number. رتب errors وتجنب مئة رسالة ناتجة من خطأ واحد.

قائمة مراجعة

  • JSON Pointer.
  • expected type.
  • actual value type.
  • لا تعرض secret value.

تحقق server-side أيضًا

Local validation لتحسين UX وليس security boundary. العميل يمكن تجاوزه. الخادم يعيد التحقق ويحدد canonical rules.

ضع JSON Schema داخل CI و Contract Tests

وجود schema في المستودع لا يضمن أن endpoint الفعلي يلتزم بها. أضف اختبارات ترسل أمثلة صالحة وأخرى غير صالحة إلى API في بيئة اختبار وتقارن response codes وال errors. عند تغيير schema، تحقق من backward compatibility للعملاء القديمة، خصوصًا required fields و enums و oneOf branches. استخدم discriminator واضحًا عندما توجد أشكال متعددة لل payload حتى لا تنتج رسالة من كل branch. ويمكن توليد fixtures من schema جزئيًا، لكن احتفظ بأمثلة business حقيقية لأن schema لا تعرف كل العلاقات مثل endDate بعد startDate. هذه المنظومة تجعل العقد حيًا وتمنع انحراف docs عن implementation.

قائمة مراجعة

  • Valid fixtures.
  • Invalid fixtures.
  • Backward compatibility.
  • رسائل field path واضحة.

اختبر Responses أيضًا لا Requests فقط

Schema مفيدة لردود API كذلك. تحقق أن status success يعيد الحقول المطلوبة وأن error shape ثابتة. إذا backend أسقط field اختياري مهم لل client لن يكشف request validation ذلك. Contract test على responses يساعد frontend و Agents على الاعتماد على IDs و status codes بثقة ويكشف الانحراف بين implementation والتوثيق مبكرًا.

من المثال إلى تطبيق يمكن صيانته

في «JSON Schema كحاجز جودة قبل إرسال بيانات إلى API» جرّب الحل على حالة صغيرة ثم أضف failure path واضحًا واختبارًا آليًا يحمي السلوك المتوقع. حدّد contract للمدخلات والمخرجات، وتعامل مع القيم الناقصة قبل الوصول إلى طبقة التنفيذ. إذا كان الحل يتعامل مع API أو ملف أو DOM، أضف logging مختصرًا يوضح المرحلة وكود الخطأ دون بيانات حساسة. بعد ذلك اختبر التوافق مع نسخة سابقة أو بيئة مختلفة. هذه الخطوات تجعل المثال مفيدًا في مشروع حقيقي بدل أن يبقى snippet يعمل فقط في المسار المثالي.

قائمة مراجعة

  • Contract للمدخلات والمخرجات.
  • اختبار failure path.
  • رسائل خطأ قابلة للتشخيص.
  • Regression test قبل الدمج.

توثيق النتيجة للفريق

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

مجتمع إيجي تاجعن المجتمع

شارك في تقييم ونقاش المقال

رأيك يضيف قيمة للمقال ويساعدنا على تحسين المحتوى والنقاش حوله.

تفاعل مع المقالاختر التفاعل المناسب، ويمكنك تغيير رأيك لاحقًا.
قيّم جودة المقاللا توجد تقييمات بعد — كن أول من يقيّم.

نقاش القراء

النقاش

جارٍ تحميل التعليقات…

بعد هذه المادة

تابع القراءة

من نفس القسم04
  1. 02
  2. 03
  3. 04
اختيار القراء

الأكثر قراءة

الترتيب الكامل
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
يتجدد مع النشر

أحدث المواد

  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06