ما هي محاكاة واجهات API؟
الواجهة الوهمية (mock) تعيد استجابات محددة مسبقاً بدلاً من الخدمة الحقيقية، بحيث يمكن بناء الواجهة الأمامية أو التكامل أو حزمة الاختبار وتجربتها قبل وجود الخلفية أو دون الاعتماد عليها. المحاكاة الجيدة تعيد إنتاج العقد الحقيقي — رموز الحالة والترويسات والترقيم وأجسام الأخطاء — وإلا نجحت الاختبارات مع المحاكاة وفشلت مع الإنتاج.
اقرأ الدليل: ما هو اختبار API؟ وكيف تختبر REST API
كيفية استخدام مولّد مجموعات بيانات API وهمية
- صِف كل مورد بالصيغة name(count) -> parent: field, field.
- اختر نمط المعرّفات وبذرة (seed) اختيارياً.
- ولّد البيانات ونزّل db.json ثم شغّل npx json-server db.json.
مزايا مولّد مجموعات بيانات API وهمية
- موارد مترابطة بمفاتيح خارجية متسقة (users → posts → comments)
- ملف db.json متوافق مع json-server بمعرّفات صحيحة أو UUID
- عناصر نائبة للحقول تُستنتج من أسمائها أو تُحدَّد صراحةً
- أشكال افتراضية لموارد users وposts وcomments وproducts وorders وcustomers وinvoices وtasks
- جدول العلاقات وأعداد السجلات ومقتطف استخدام جاهز للتشغيل
مثال على مولّد مجموعات بيانات API وهمية
مجموعة بيانات مدوّنة
الإدخال:
users(3): name, email
posts(5) -> users: title
comments(6) -> posts, users: bodyالنتيجة:
{
"users": [{ "id": 1, "name": "Mia Bennett", "email": "mia.bennett@example.com" }, …],
"posts": [{ "id": 1, "userId": 2, "title": "Notes on granite pipelines" }, …],
"comments": [{ "id": 1, "postId": 4, "userId": 1, "body": "Thank you for contacting our support team." }, …]
}الأسئلة الشائعة حول مولّد مجموعات بيانات API وهمية
كيف أعرّف الموارد والعلاقات؟
سطر واحد لكل مورد: users(10): name, email، ثم posts(30) -> users: title, body. تحصل الموارد الفرعية على مفتاح خارجي بصيغة <parent>Id يشير إلى سجل أصل موجود؛ ويمكن ربط المورد بأكثر من مورد أصل.
هل المخرجات متوافقة مع json-server؟
نعم. احفظها باسم db.json وشغّل npx json-server db.json — لتحصل مجاناً على مسارات REST مع التصفية (?userId=1) والترتيب والتقسيم إلى صفحات. وتعرض لوحة الاستخدام قائمة المسارات.
كيف تُختار قيم الحقول؟
من اسم الحقل (email وprice وcreatedAt وisActive…) أو من عنصر نائب صريح مثل price:price:5-500. وللموارد المسمّاة users أو posts أو comments أو products أو orders أو customers قيم افتراضية مناسبة.
ما الحجم الأقصى لمجموعة البيانات؟
حتى 20,000 سجل إجمالاً. استخدم بذرة (seed) للحصول على مجموعات بيانات قابلة لإعادة الإنتاج في الاختبارات والعروض التوضيحية.
المراجع
- OpenAPI Specificationالمعيار لوصف واجهات REST: المسارات والعمليات والمعاملات والمخططات والاستجابات وأنظمة الأمان.
- RFC 9110: HTTP Semanticsمعاني أساليب HTTP وحقول الترويسات ورموز الحالة والتفاوض على المحتوى، بغضّ النظر عن إصدار البروتوكول.
- RFC 8288: Web Linkingترويسة Link وعلاقات الروابط (next وprev وfirst وlast) المستخدمة لترقيم صفحات API.