مقدمة JSON Schema: تحقق من بنية JSON مثل قيود قواعد البيانات
2024-04-13
صلاحية الصياغة لا تعني صحة البيانات. JSON Schema يصف الشكل المسموح به ويمنحك تحققًا واضحًا في وقت التشغيل أو ضمن CI.
Schema بسيط
حدّد نوع الجذر object أو array، ثم properties والحقول المطلوبة عبر required.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["id", "name"],
"properties": {
"id": { "type": "integer" },
"name": { "type": "string", "minLength": 1 }
}
}الكلمات المفتاحية الشائعة
type وenum وitems وadditionalProperties: false وoneOf و$ref تغطي أغلب الاحتياجات.
الاستخدام في الكود
في JavaScript استخدم ajv، وفي Python jsonschema، وفي Go gojsonschema.
تعريفات OpenAPI تعتمد عمليًا على أجزاء من JSON Schema.
مقابل فحص الصياغة
JSON.parse يفحص النحو، بينما Schema يفحص العقد البنيوي؛ الفصل بينهما يسهل التشخيص.
اعتماده داخل الفريق
ضع Schema في المستودع، وشغّل التحقق على fixtures ضمن CI مع كل تغيير API.