إذا كنت قد احتجت يومًا إلى نقطة نهاية API وهمية تُرجع نص JSON محددًا ورمز حالة ورؤوسًا دون الحاجة إلى إعداد خادم، فمن المحتمل أنك بحثت عن Mocky. يشرح هذا الدليل ماهية Mocky، وكيفية استخدامه، ومتى ستتجاوز حاجتك إليه. إذا كنت ترغب في رؤية المشهد الأوسع أولاً، فإن مقارنتنا لأدوات محاكاة واجهة برمجة التطبيقات عبر الإنترنت تغطي المجال، ويؤكد مستودع Mocky مفتوح المصدر الأساسيات.
ما هو Mocky؟
Mocky هو خدمة ويب مجانية ومفتوحة المصدر لإنشاء استجابات HTTP مخصصة. أنت تصمم استجابة في متصفحك، ويمنحك Mocky عنوان URL فريدًا، وأي طلب إلى هذا العنوان URL يُرجع بالضبط ما قمت بتعريفه. لا يوجد خادم خلفي للكتابة ولا خادم للاستضافة.
تم بناؤه بواسطة Julien Lafont وتم إصداره بموجب ترخيص Apache 2.0. يعيش الإصدار المستضاف على mocky.io، ولأن الكود مفتوح للعامة، يمكنك أيضًا استضافته ذاتيًا إذا كنت تفضل تشغيل نسختك الخاصة.
الفكرة الأساسية بسيطة. أنت "تصمم استجابة خلف عنوان URL". هذا هو المنتج بأكمله، وهذا التركيز هو أكبر نقطة قوة له.
ما يمكنك تهيئته
يتيح لك Mocky تعيين أجزاء استجابة HTTP المهمة لاختبار العميل:
- رمز الحالة، حتى تتمكن من إرجاع
200أو404أو500عند الطلب. - نص الاستجابة، عادةً JSON، ولكن أي حمولة نصية تعمل.
- رؤوس HTTP، بما في ذلك نوع المحتوى والرؤوس المخصصة.
- تأخير الاستجابة، حتى تتمكن من محاكاة شبكة بطيئة أو تأخر في النظام.
بمجرد الحفظ، يخزن Mocky الاستجابة ويمنحك عنوان URL دائمًا. يمكنك لصق عنوان URL هذا في كود الواجهة الأمامية أو اختبارك أو عميل HTTP الخاص بك، وبذلك تكون قد انتهيت.
مثال سريع
لنفترض أن الواجهة الخلفية لديك ليست جاهزة بعد، ولكن الواجهة الأمامية تحتاج إلى كائن مستخدم للعرض. يمكنك فتح مصمم Mocky، وتعيين الحالة إلى 200، وتعيين Content-Type: application/json، ولصق نص مثل هذا:
{
"id": 42,
"name": "Ada Lovelace",
"role": "admin"
}
يعيد Mocky عنوان URL مثل https://run.mocky.io/v3/<some-id>. وجه تطبيقك إليه، وكل طلب سيحصل على هذا المستخدم. للحصول على نظرة أوسع لهذا النمط، راجع شرحنا حول كيفية محاكاة واجهات برمجة التطبيقات عبر الإنترنت دون إعداد خادم.
متى يكون Mocky هو الخيار الصحيح
يتألق Mocky عندما تكون احتياجاتك صغيرة وذات مرة واحدة:
- تريد استجابة ثابتة واحدة، بسرعة، بدون حساب.
- تشارك حمولة ثابتة مع زميل في الفريق أو في تذكرة دعم.
- تُعيد إنتاج حالة خطأ واحدة، مثل استجابة خطأ الخادم الداخلي 500، لتقرير خطأ.
- لا تحتاج إلى تغيير الاستجابة بناءً على الطلب.
لهذه المهام، يصعب التغلب على Mocky. إنه مجاني، ويتم تحميله في المتصفح، ويمكنك الحصول على عنوان URL يعمل في أقل من دقيقة. لا تفرط في هندسة مشكلة بهذا الحجم.
أين تبدأ قيود Mocky في الظهور
البساطة نفسها التي تجعل Mocky رائعًا هي نفسها التي تحد منه. كل عنوان URL في Mocky هو استجابة ثابتة واحدة. مع نمو مشروعك، يصبح هذا النموذج ضعيفًا بطرق متوقعة قليلة.
- لا توجد بيانات ديناميكية. يحصل كل متصل على نفس النص تمامًا. لا يمكنك إرجاع مستخدم مختلف لـ
/users/1مقابل/users/2، ولا يمكنك إنشاء بيانات واقعية ومتنوعة. - لا توجد مطابقة للطلبات. لا يتفرع Mocky بناءً على معلمات الاستعلام أو قيم المسار أو نصوص الطلبات. عنوان URL واحد، إجابة واحدة.
- تنظيم ضعيف. واجهة برمجة التطبيقات الحقيقية تحتوي على عشرات من نقاط النهاية. تصبح إدارتها ككومة من روابط Mocky المنفصلة فوضوية بسرعة.
- تعاون ضعيف. لا توجد مساحة عمل مشتركة، ولا إصدار، ولا أذونات للفريق حول محاكياتك.
- لا يوجد رابط مخطط (Schema). تعيش محاكاتك ومواصفات OpenAPI الخاصة بك في أماكن مختلفة، لذلك تتفكك.
عندما تصل إلى اثنين أو ثلاثة من هذه القيود، تكون قد تجاوزت أداة الاستجابة الواحدة. هذه هي النقطة التي تنتقل فيها إلى منصة محاكاة كاملة. إذا كنت توازن بين مقايضة الميزانية، فإن دليلنا لخوادم محاكاة واجهة برمجة التطبيقات المجانية والرخيصة يوضح الخيارات.
المحفز الشائع هو فريق الواجهة الأمامية. يقوم مطور واحد بمحاكاة كائن المستخدم، وآخر بمحاكاة قائمة الطلبات، وثالث بمحاكاة تدفق المصادقة. باستخدام Mocky، هذه هي ثلاثة روابط غير ذات صلة بدون عنوان URL أساسي مشترك ولا طريقة لتبديل البيئات. باستخدام خادم محاكاة حقيقي، تكون هذه هي ثلاث نقاط نهاية في مشروع واحد تجيب جميعها تحت مضيف واحد، ويمكنك التبديل بين بيانات بيئة الاختبار وبيانات الإنتاج في مكان واحد.
أفضل بديل لـ Mocky: Apidog
Apidog يحتفظ بأفضل ميزة في Mocky، وهي الاستجابة المخصصة خلف عنوان URL قابل للمشاركة، ثم يضيف الأشياء التي يتجاهلها Mocky: الاستمرارية عبر العديد من نقاط النهاية، والبيانات المستندة إلى المخطط، والاستجابات الديناميكية، والتعاون الجماعي. أنت تصمم نقاط النهاية، ويقوم Apidog بإنشاء عنوان URL محاكاة مستضاف يعيد رموز حالة مخصصة، ورؤوس، ونصوص JSON، تمامًا مثل Mocky، ولكنه مرتبط بتصميم API الفعلي الخاص بك.
هذا هو الفرق الصريح. Mocky يجيب على "أعطني استجابة ثابتة واحدة، مجانية، الآن". Apidog يجيب على "أعطني محاكاة موثوقة لواجهة برمجة تطبيقات كاملة تنمو مع مشروعي".
بعض الأشياء التي يضيفها Apidog فوق حالة استخدام Mocky:
- محاكاة ذكية وبيانات مولدة بواسطة الذكاء الاصطناعي. بدلاً من ترميز نص واحد، يمكن لـ Apidog استنتاج قيم واقعية من أسماء حقولك ومخططك، بحيث يُرجع
emailبريدًا إلكترونيًا وcreatedAtتاريخًا. - دعم Faker.js. يمكنك توصيل Faker.js لإنشاء بيانات محاكاة ديناميكية لحمولات متنوعة وواقعية في كل استدعاء.
- قواعد محاكاة متقدمة. إرجاع استجابات مختلفة بناءً على معلمات الاستعلام أو محتوى الطلب، وهو ما لا يستطيع Mocky فعله في مطابقة الطلبات.
- المحاكاة القائمة على المخطط (Schema-first). يتم إنشاء المحاكاة الخاصة بك من تصميم OpenAPI الخاص بك، لذلك يظلان متزامنين.
- مساحات عمل الفريق. تعيش المحاكيات في مشروع مشترك مع التحكم في الإصدار والمزامنة في الوقت الفعلي، وليست منتشرة عبر روابط أحادية الغرض.
لا يزال بإمكانك الحصول على الجزء البسيط. هل تحتاج إلى نقطة نهاية واحدة تُرجع 200 مع نص JSON ثابت خلف عنوان URL؟ يقوم Apidog بذلك أيضًا، ويمكنك مشاركته مع فريقك بنقرة واحدة.
Mocky مقابل Apidog في لمحة
| القدرة | Mocky | Apidog |
|---|---|---|
| حالة مخصصة، رؤوس، نص خلف عنوان URL | نعم | نعم |
| مجاني للبدء، لا يتطلب إعداد | نعم | نعم (خطة مجانية) |
| استجابة ثابتة واحدة | نعم | نعم |
| بيانات ديناميكية (Faker.js، محاكاة ذكية) | لا | نعم |
| مطابقة الطلبات / قواعد شرطية | لا | نعم |
| العديد من نقاط النهاية في مشروع واحد | لا | نعم |
| محاكيات تعتمد على المخطط (OpenAPI) | لا | نعم |
| مساحة عمل جماعية + تحديد الإصدار | لا | نعم |
| خيار الاستضافة الذاتية | نعم (مفتوح المصدر) | خيارات سحابية + استضافة ذاتية |
إذا كنت ترغب في مقارنة المزيد من المتنافسين جنبًا إلى جنب، فإن قائمتنا لأفضل أدوات محاكاة واجهة برمجة التطبيقات ومقارنتنا لمحاكاة نقاط نهاية REST تتعمق أكثر.
كيفية استبدال عنوان Mocky URL في Apidog
التحويل من رابط Mocky واحد سريع:
- قم بتنزيل Apidog وأنشئ مشروعًا.
- أضف نقطة نهاية، على سبيل المثال
GET /users/42. - حدد الاستجابة: اضبط رمز الحالة، وأضف الرؤوس، واكتب نص JSON، وهي نفس الحقول التي كنت ستكتبها في Mocky.
- مكّن المحاكاة. يقوم Apidog بإنشاء عنوان URL محاكاة مستضاف لنقطة النهاية هذه.
- وجه واجهتك الأمامية أو اختبارك إلى عنوان URL الجديد.
من هناك يمكنك إضافة الإضافات، والبيانات الديناميكية، والقواعد الشرطية، والمزيد من نقاط النهاية، كلما احتجت إليها. ليس عليك استخدام الميزات المتقدمة في اليوم الأول.
نادراً ما تكون الهجرة دفعة واحدة. تحتفظ معظم الفرق بروابط Mocky الحالية الخاصة بها تعمل بينما تعيد بناء نقاط النهاية المهمة في Apidog، ثم تُبطل عناوين URL القديمة بمجرد أن يصبح المشروع في مكان واحد. لأن Apidog يمكنه قراءة ملف OpenAPI، إذا كان لديك مواصفات بالفعل، يمكنك استيرادها والحصول على عناوين URL وهمية لكل نقطة نهاية دفعة واحدة، بدلاً من إعادة إنشاء كل استجابة يدويًا.
أسئلة مكررة
هل Mocky مجاني؟
نعم. Mocky مجاني ومفتوح المصدر بموجب ترخيص Apache 2.0، ولا تحتاج إلى حساب لإنشاء محاكاة. يتم تخزين الاستجابات على جانب الخادم، لذلك يظل عنوان URL الذي تحصل عليه نشطًا. إذا كنت تحتاج إلى أكثر من استجابة ثابتة واحدة، فإن منصة أكثر اكتمالاً مثل Apidog تمنحك طبقة مجانية مع بيانات ديناميكية وميزات جماعية.
ما الفرق بين mocky.io وخادم المحاكاة؟
عنوان Mocky URL هو استجابة جاهزة واحدة. خادم المحاكاة يحاكي واجهة برمجة تطبيقات كاملة، مع العديد من نقاط النهاية، ومطابقة الطلبات، وبيانات يمكن أن تتغير لكل طلب. إذا كنت جديدًا على المفهوم، فإن شرحنا لماذا API وهمية يوضح ذلك من الألف إلى الياء.
هل يمكنني إرجاع رمز حالة مخصص ورؤوس مع Mocky؟
نعم. هذا هو بالضبط ما صُمم Mocky لأجله. يمكنك تعيين رمز الحالة، وإضافة أي رؤوس تريدها، وكتابة النص، ويقدم Mocky كل ذلك من عنوان URL واحد. الحد الأقصى هو أنه دائمًا نفس الاستجابة، بغض النظر عن الطلب.
متى يجب أن أنتقل من Mocky إلى منصة محاكاة كاملة؟
انتقل عندما تحتاج إلى أكثر من إجابة ثابتة واحدة: بيانات ديناميكية أو واقعية، استجابات شرطية، عدة نقاط نهاية منظمة معًا، أو مساحة عمل مشتركة لفريقك. حتى ذلك الحين، بساطة Mocky هي ميزة وليست عيبًا.
خاتمة
Mocky طريقة نظيفة ومجانية لوضع استجابة HTTP مخصصة واحدة خلف عنوان URL، وللاحتياجات السريعة والثابتة، إنها الأداة المناسبة. ولكن لحظة أن تحتاج إلى بيانات ديناميكية، أو مطابقة للطلبات، أو العديد من نقاط النهاية، أو التعاون الجماعي، فإن نموذج الاستجابة الواحدة هذا يضيق مساحته.
وهنا يأتي دور Apidog. فهو يقوم بنفس مهمة "تصميم استجابة خلف عنوان URL"، ثم يتوسع إلى محاكاة ديناميكية وتعاونية تعتمد على المخطط مع نمو واجهة برمجة التطبيقات الخاصة بك. قم بتنزيل Apidog لإنشاء أول عنوان URL وهمي لك مجانًا واحتفظ به مع كبر مشروعك.
