مدقّق استجابات API

تعمل في المتصفح اختبار واجهات API

حدّد التوقعات (رمز الحالة والترويسات ونوع المحتوى وJSON Schema أو قواعد حقول بسيطة) وتحقّق من استجابة ملصوقة، للحصول على قائمة فحص بالنجاح/الفشل.

الخصوصية: تعمل هذه الأداة بالكامل في متصفحك. لا تغادر بياناتك جهازك أبداً.
جارٍ تحميل الأداة…

ما هو اختبار واجهات API؟

اختبار واجهات API يفحص الخدمة عبر واجهتها لا عبر شاشاتها: أرسل طلباً بأسلوب وترويسات وجسم مختارة، ثم تحقق من رمز الحالة وترويسات الاستجابة وبنية الجسم وقيمه والوقت المستغرق. ولأنه يعمل تحت واجهة المستخدم، فهو أسرع وأكثر استقراراً ويكشف عيوب التكامل مبكراً — ولهذا تُبنى حزم الانحدار على مستوى API أولاً.

اقرأ الدليل: ما هو اختبار API؟ وكيف تختبر REST API

كيفية استخدام مدقّق استجابات API

  1. الصق الاستجابة (من curl -i أو وكيل أو أدوات المطوّر DevTools) أو جسم JSON وحده.
  2. أدخل الحالة والترويسات المتوقّعة، وقاعدة حقل واحدة في كل سطر، ومخططاً اختيارياً.
  3. تحقّق. يتحول كل توقّع إلى صف بحالة PASS أو FAIL أو ERROR (للقواعد التي تعذّر تحليلها).
  4. انسخ قائمة الفحص إلى تقرير اختبارك.

مزايا مدقّق استجابات API

  • يقبل استجابة HTTP خاماً (سطر الحالة + الترويسات + الجسم) أو جسم JSON وحده
  • الحالة المتوقّعة (200 أو 2xx أو 200,201 أو 200-204) وتوقعات الترويسات (contains / exists)
  • قواعد حقول بصيغة JSONPath: exists و== و!= والمقارنات وtype وlength وmatches وcontains وin وempty وnull
  • تحقق اختياري وفق JSON Schema مع جدول بالمخالفات
  • قائمة فحص نجاح/فشل مع القيم الفعلية، قابلة للتنزيل بصيغة CSV

مثال على مدقّق استجابات API

التحقق من استجابة مستخدم

الإدخال:

HTTP/1.1 200 OK
Content-Type: application/json

{ "status": "ok", "data": { "id": "usr_1029", "email": "layla@example.com" } }

Rules: $.data.id exists · $.data.email matches ^\S+@\S+$ · $.data.password not exists

النتيجة:

PASS · 5 checks
status 2xx — Status 200 is 2xx.
Content-Type: application/json — contains "application/json".
$.data.id exists — exists.
$.data.email matches … — matches.
$.data.password not exists — absent.

الأسئلة الشائعة حول مدقّق استجابات API

ماذا يمكنني أن ألصق؟

إما استجابة HTTP الخام (سطر الحالة، والترويسات، وسطر فارغ، والجسم — كما يطبعها curl -i) أو جسم JSON وحده. تحتاج فحوصات الحالة والترويسات إلى الاستجابة الخام.

ما قواعد الحقول المدعومة؟

مسار JSONPath يتبعه شرط: exists، أو not exists، أو == value، أو != value، أو > < >= <= n، أو type string|number|integer|boolean|array|object|null، أو length >= n، أو matches <regex>، أو contains <x>، أو in [a, b]، أو empty، أو not empty، أو null، أو not null.

هل يمكنني استخدام JSON Schema أيضاً؟

نعم. الصق مخططاً (بكلمات draft-07 / 2019-09 / 2020-12 المفتاحية) وسيُتحقّق من الجسم وفقه؛ وتُسرد المخالفات مع مساراتها.

هل تجلب الأداة عنوان URL نيابةً عني؟

لا — تتحقق مما تلصقه فقط. استخدم مختبِر REST API لإرسال الطلب وإضافة التأكيدات على استجابة حيّة.

ملاحظات تقنية

تُقيَّم القواعد على أول تطابق لمسار JSONPath. وتُحلَّل قيم المقارنة الحرفية بوصفها JSON (فتتصرف 42 وtrue و"text" كما هو متوقّع)؛ أما المعاملات غير الرقمية فتفشل في المقارنات الرقمية مع رسالة واضحة بدلاً من النجاح بصمت.

المراجع

  • RFC 9110: HTTP SemanticsIETF · 2022معاني أساليب HTTP وحقول الترويسات ورموز الحالة والتفاوض على المحتوى، بغضّ النظر عن إصدار البروتوكول.
  • OpenAPI SpecificationOpenAPI Initiativeالمعيار لوصف واجهات REST: المسارات والعمليات والمعاملات والمخططات والاستجابات وأنظمة الأمان.
  • OWASP Cheat Sheet Series: REST SecurityOWASP Foundationالقواعد الأمنية لواجهات REST: HTTPS، والتوثيق في كل طلب، والتحقق من المدخلات، واستجابات الخطأ الآمنة، وتحديد المعدل.