هل يمكنك تقديم مثال على إعادة استخدام المخططات مع $ref في مخطط JSON؟
الخطوات
الجواب
التاكيد! في JSON Chema ، يمكنك إعادة استخدام المخططات من خلال الرجوع إليها باستخدام الكلمة الأساسية $ref
. هذا مفيد بشكل خاص لتحديد المكونات الشائعة مثل الكائنات أو المصفوفات التي تظهر عدة مرات في بيانات JSON الخاصة بك. فيما يلي مثال يوضح كيفية إعادة استخدام المخططات مع $ref
.
مثال مخطط JSON:
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "user": { "$ref": "#/definitions/user" }, "items": { "type": "array", "items": { "$ref": "#/definitions/item" } } }, "definitions": { "user": { "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" } }, "required": ["id", "name", "email"] }, "item": { "type": "object", "properties": { "productId": { "type": "integer" }, "quantity": { "type": "integer" } }, "required": ["productId", "quantity"] } }, "required": ["user", "items"] }
شرح:
-
كائن الجذر: مخطط الجذر هو كائن له خاصيتان:
user
وitems
. -
إعادة استخدام مخطط المستخدم: تستخدم الخاصية
user
$ref
للإشارة إلى تعريفuser
ضمنdefinitions
. يعرف هذا المخطط كائن مستخدم بid
وname
وemail
. -
إعادة استخدام مخطط العنصر: الخاصية
items
عبارة عن صفيف من العناصر حيث تتم الإشارة إلى كل مخطط عنصر باستخدام$ref
إلى تعريفitem
. يحدد هذا المخطط بنية كل عنصر في الصفيف، بما في ذلكproductId
وquantity
. -
الخصائص المطلوبة: يجب أن يحتوي كل من
user
وكلitem
على خصائص معينة مطلوبة محددة في المخططات الخاصة بكل منهما.
يعزز هذا النهج قابلية الصيانة ويقلل من التكرار من خلال تمكينك من تحديد بنية المكونات الشائعة في مكان واحد والرجوع إليها في جميع أنحاء المخطط الخاص بك.
الإقتراحات
- كيف تؤدي إعادة استخدام المخططات مع $ref إلى تحسين إمكانية صيانة مخطط JSON؟
- هل يمكنك تقديم مثال على كيفية الرجوع إلى مخطط باستخدام $ref في جزء مختلف من مخطط JSON؟
- ما هي فوائد استخدام مخطط JSON لتحديد بنية بيانات JSON؟
- كيف تضمن الكلمة الأساسية "المطلوبة" في مخطط JSON سلامة البيانات؟
- في أي سيناريوهات تفكر في استخدام مخطط JSON للتحقق من صحة البيانات والتوثيق؟