كيفية استخدام مدقّق مخططات API
- الصق JSON Schema أو مستند OpenAPI/Swagger كاملاً.
- في حالة OpenAPI، أدخل المسار (مثل /orders/{id}) والطريقة ورمز حالة الاستجابة المراد فحصها.
- الصق استجابة واحدة، أو استجابة في كل سطر لمعالجة دفعة.
- تحقّق وأصلح المخالفات المسرودة (أو العقد، إذا كانت واجهة API على صواب).
مزايا مدقّق مخططات API
- التحقق من استجابة JSON واحدة أو عدة استجابات (JSON Lines) وفق JSON Schema
- أو اختيار المخطط من مستند OpenAPI 3 / Swagger 2 حسب المسار والطريقة والحالة
- حلّ مراجع $ref المحلية (components وdefinitions و$defs) وallOf/oneOf/anyOf والصيغ وnullable
- جدول مخالفات يتضمن رقم العيّنة والمسار والكلمة المفتاحية والرسالة
- يعرض المخطط المستخدم بالضبط، ويمكن تنزيله بصيغة JSON
مثال على مدقّق مخططات API
التحقق من ثلاث طلبيات دفعة واحدة
الإدخال:
OpenAPI: GET /orders/{id} → 200 → Order
Samples:
{ "id": "ord_1001", "status": "paid", "total": 149.5, "items": [ { "sku": "A-1", "qty": 2 } ] }
{ "id": "1002", "status": "refunded", "total": -5, "items": [] }النتيجة:
FAIL · Samples 2 · Valid 1 · Violations 4
Sample 2 $.id pattern String does not match pattern ^ord_.
Sample 2 $.status enum Value must be one of: "pending", "paid", "shipped", "cancelled".
Sample 2 $.total minimum Value must be ≥ 0.
Sample 2 $.items minItems Array has fewer than 1 items.الأسئلة الشائعة حول مدقّق مخططات API
كيف أتحقق وفق استجابة OpenAPI؟
الصق مستند OpenAPI/Swagger، ثم املأ المسار والطريقة ورمز الحالة — يُحلّ مخطط الاستجابة (بما في ذلك $ref) ويُستخدم للتحقق.
هل يمكنني التحقق من عدة عيّنات دفعة واحدة؟
نعم. الصق مستند JSON واحداً، أو مستنداً في كل سطر (JSON Lines) للتحقق من دفعة كاملة؛ ويعرض جدول المخالفات رقم العيّنة.
ما مسودات JSON Schema المدعومة؟
الكلمات المفتاحية الشائعة في draft-07 و2019-09 و2020-12، إضافةً إلى إضافات OpenAPI مثل nullable.
لماذا يفشل حلّ مرجع $ref؟
تُدعم المراجع المحلية فقط (#/components/schemas/X و#/definitions/X و#/$defs/X)؛ ولا تُجلب الملفات الخارجية.
ملاحظات تقنية
يشترك المدقّق في محرّكه مع أداة مدقّق JSON Schema ويدعم الكلمات المفتاحية الشائعة في draft-07/2019-09/2020-12. وتُقرأ مخططات استجابات Swagger 2.0 من responses[code].schema؛ ومخططات OpenAPI 3 من responses[code].content[application/json].schema.