DEV Community

Cover image for كيفية استضافة خادم وهمي سحابي قابل للمشاركة باستخدام Apidog
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

كيفية استضافة خادم وهمي سحابي قابل للمشاركة باستخدام Apidog

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

جرّب Apidog اليوم

يحل Apidog هذه المشكلة عبر Cloud Mock: عنوان URL عام مستضاف على mock.apidog.com يظل متاحًا باستمرار. يمكن للواجهة الأمامية وQA والشركاء استدعاء نقاط نهاية واقعية قبل كتابة كود الواجهة الخلفية. ابدأ أيضًا بدليل ما هي المحاكاة البرمجية (API mock) ومتى تستخدمها، وراجع نموذج طلب/استجابة HTTP في MDN لفهم تدفق الطلبات.

ما هو Cloud Mock ولماذا لا تكفي المحاكاة المحلية؟

ينشئ Apidog نقطة محاكاة لكل API تصممها. افتراضيًا، تعمل المحاكاة محليًا من مثيل Apidog على جهازك، لذلك تتوقف عند إغلاق الجهاز. هذا مناسب للتصحيح الفردي، لكنه غير مناسب لفريق يعتمد على رابط مشترك.

Cloud Mock ينقل المحاكاة إلى خدمة Apidog المستضافة. النتيجة: نقطة نهاية متاحة 24/7 ولا تعتمد على أن يكون جهاز أي شخص قيد التشغيل.

سير العمل العملي بسيط:

  1. صمّم عقد API.
  2. فعّل Cloud Mock للمشروع.
  3. انسخ رابط المحاكاة.
  4. شاركه مع الواجهة الأمامية وQA والشركاء.
  5. ابدأ تنفيذ الواجهة قبل اكتمال الخلفية.

إذا كان فريقك موزعًا عالميًا، راجع مشاركة خوادم المحاكاة والبيئات مع الفرق العالمية.

تفعيل Cloud Mock والحصول على رابط عام

لنفترض أنك تنشئ خدمة users وتحتاج إلى نقطة النهاية التالية:

GET /users
Enter fullscreen mode Exit fullscreen mode

1. فعّل Cloud Mock

من مشروعك، انتقل إلى:

Project Settings > Feature Settings > Mock Settings
Enter fullscreen mode Exit fullscreen mode

فعّل خيار Cloud Mock.

يُفعّل هذا الإعداد مرة واحدة لكل مشروع. بعد ذلك، تحصل كل نقطة نهاية على رابط محاكاة سحابي بجانب رابطها المحلي.

تفعيل Cloud Mock

2. انسخ رابط المحاكاة السحابية

افتح GET /users، ثم انتقل إلى تبويب Mock وانسخ رابط Cloud Mock. سيكون قريبًا من الشكل التالي:

https://mock.apidog.com/m1/2689726-0-default/users?apidogToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi
Enter fullscreen mode Exit fullscreen mode

يتبع الرابط عادة هذا النمط:

mock.apidog.com/m1/<projectId>-<num>-<env>/<path>
Enter fullscreen mode Exit fullscreen mode

لا تنشئ الرابط يدويًا؛ انسخه من Apidog لأن المشروع والبيئة والرمز المميز قد تختلف.

3. اختبر الاستجابة داخل Apidog

من تبويب Mock، أرسل طلب اختبار إلى رابط المحاكاة. يجب أن ترى استجابة تتوافق مع المخطط الذي عرّفته، مثل:

[
  {
    "id": 1,
    "name": "Amelia Turner",
    "email": "amelia.turner@example.com",
    "city": "Portland"
  },
  {
    "id": 2,
    "name": "Marcus Bell",
    "email": "marcus.bell@example.com",
    "city": "Austin"
  }
]
Enter fullscreen mode Exit fullscreen mode

يعتمد Apidog على أسماء الحقول وأنواعها في المخطط لتوليد بيانات مناسبة، ما يجعل المحاكاة مفيدة لاختبار الجداول والقوائم وحالات الواجهة المختلفة.

4. استدعِ الرابط من المتصفح أو التطبيق

يمكن فتح طلبات GET مباشرة في المتصفح للتحقق السريع من JSON.

لاختبار الرابط عبر الطرفية:

curl "https://mock.apidog.com/m1/2689726-0-default/users?apidogToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
Enter fullscreen mode Exit fullscreen mode

وفي تطبيق الواجهة الأمامية، استخدمه مثل أي API عادية.

تأمين المحاكاة باستخدام Token Authentication

الرابط العام مفيد، لكنه قد يحتاج إلى تقييد عند محاكاة ميزة غير منشورة أو تكامل شريك خاص.

اذهب إلى:

Project Settings > Feature Settings > Mock Settings
Enter fullscreen mode Exit fullscreen mode

ثم اختر Token Authentication كإذن وصول. عند التفعيل، يجب أن يحمل كل طلب قيمة apidogToken صالحة.

تمرير الرمز في رابط الطلب

curl "https://mock.apidog.com/m1/2689726-0-default/users?apidogToken=GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
Enter fullscreen mode Exit fullscreen mode

تمرير الرمز في رأس الطلب

هذا أنسب عادةً للواجهات الأمامية لأنه لا يضع الرمز في عنوان URL:

curl "https://mock.apidog.com/m1/2689726-0-default/users" \
  -H "apidogToken: GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
Enter fullscreen mode Exit fullscreen mode

مثال باستخدام fetch:

const res = await fetch(
  "https://mock.apidog.com/m1/2689726-0-default/users",
  {
    headers: {
      apidogToken: "GdfNrEm6lxM9nDGGIMCWC1OPSiZ6hGOi"
    }
  }
);

const users = await res.json();
Enter fullscreen mode Exit fullscreen mode

يمكن أيضًا إرسال apidogToken كمعامل في جسم طلب form-data أو x-www-form-urlencoded.

إذا فعّلت المصادقة بعد مشاركة رابط بدون رمز، نسّق التغيير مع المستهلكين. الطلبات القديمة ستُرفض حتى يضيفوا الرمز.

توليد بيانات واقعية حسب اللغة والمنطقة

استجابة مثل "name": "string" لا تكشف مشكلات واجهة المستخدم. أما الأسماء والعناوين وأرقام الهاتف الواقعية فتساعدك على اكتشاف تجاوز النص، ومشكلات التنسيق، واختلاف أطوال القيم قبل وصول البيانات الحقيقية.

يستخدم Apidog Faker.js لتوليد البيانات، ويمكنك التحكم باللغة المحلية والمنطقة الزمنية.

ضبط اللغة المحلية الافتراضية للمشروع

اذهب إلى:

Project Settings > Basic Settings
Enter fullscreen mode Exit fullscreen mode

اللغة المحددة هنا تصبح اللغة المحلية الافتراضية لقيم المحاكاة المولدة في المشروع.

تجاوز اللغة للمشروع بالكامل

يمكنك اختيار لغة Faker مختلفة من:

Project Settings > Feature Settings > Mock Settings
Enter fullscreen mode Exit fullscreen mode

هذا مفيد عند اختبار التدويل. على سبيل المثال، اضبط لغة المحاكاة على اليابانية للتحقق من تعامل الواجهة مع النصوص غير اللاتينية وتنسيقات العناوين المختلفة.

للمزيد عن توليد البيانات من المخطط، راجع محاكاة Apidog الذكية وكيفية قراءتها لمخططك.

تجاوز اللغة لحقل واحد

عندما تحتاج إلى قيمة من لغة مختلفة في حقل محدد، استخدم معامل locale داخل تعبير المحاكاة:

{{$person.fullName(locale='ja')}}
Enter fullscreen mode Exit fullscreen mode

ينتج هذا اسمًا يابانيًا مثل:

田中 太郎
Enter fullscreen mode Exit fullscreen mode

ترتيب الأولوية هو:

  1. لغة الحقل.
  2. لغة المشروع في Mock Settings.
  3. اللغة الافتراضية في Basic Settings.

تحقق من رمز اللغة المطلوب في وثائق Apidog قبل الاعتماد عليه، وراجع دليل لغات Faker.js لفهم صيغ اللغات المحلية.

اضبط المنطقة الزمنية أيضًا

من Mock Settings يمكنك ضبط المنطقة الزمنية الافتراضية للمشروع. ولحقل محدد، استخدم timeZone parameter داخل تعبير المحاكاة.

هذا مهم لحقول مثل createdAt وupdatedAt: ستصبح الطوابع الزمنية أقرب إلى المنطقة التي تختبرها بدل الاعتماد على موقع الخادم.

راجع حالات استخدام محاكاة API العملية لأمثلة إضافية.

Cloud Mock مقابل الاستضافة الذاتية

Cloud Mock مناسب لمعظم الفرق لأنه مستضاف ولا يتطلب تشغيل خدمة محاكاة أو صيانتها.

لكن قد تحتاج إلى الاستضافة الذاتية إذا كانت مؤسستك لديها متطلبات لتوطين البيانات أو سياسات تمنع إرسال حركة الاختبار عبر سحابة مزود خارجي. في هذه الحالة، ستدير الخدمة بنفسك مقابل تحكم أكبر.

بالنسبة لتوفر الميزات حسب الخطة، تحقق من حسابك الحالي بدل الاعتماد على معلومات ثابتة في منشور قديم. يمكنك تنزيل Apidog وتجربة التدفق كاملًا في مساحة العمل الخاصة بك.

استخدام Apidog CLI للحفاظ على دقة المحاكاة

Cloud Mock ليس خادمًا تشغله من الطرفية. استجابات المحاكاة تُولّد من مخطط نقطة النهاية وتُقدَّم من خدمة Apidog المستضافة.

لكن Apidog CLI يساعدك في الحفاظ على صحة مدخلات المحاكاة: نقاط النهاية والمخططات. عندما تضيف الحقول أو تعدّل أنواعها في المشروع، تتغير مخرجات المحاكاة لتتبع العقد الجديد.

بعد جاهزية الخلفية الحقيقية، شغّل سيناريوهات الاختبار نفسها من CLI للتحقق من أن التنفيذ يطابق العقد:

apidog run -t <scenario_id> -e <env_id> -r cli
Enter fullscreen mode Exit fullscreen mode

افتح السيناريو في Apidog وانسخ الأمر المولّد بدل كتابة المعرفات يدويًا. ولدمج الاختبارات في خط الأنابيب، راجع تشغيل Apidog في خط أنابيب CI/CD.

الأسئلة الشائعة

هل يظل رابط Cloud Mock متاحًا عند إغلاق Apidog؟

نعم. المحاكاة السحابية تُقدَّم من بنية Apidog التحتية، لذلك لا تعتمد على تشغيل جهازك أو تطبيقك المحلي.

هل يمكن فتح رابط المحاكاة في المتصفح؟

نعم، لطلبات GET. الصق الرابط الكامل، متضمنًا apidogToken عند الحاجة، وستظهر استجابة JSON. استخدم curl أو عميل HTTP أو تطبيق الواجهة الأمامية للطلبات الأخرى.

ماذا يحدث إذا لم أرسل الرمز المميز؟

عند تفعيل Token Authentication، سترفض المحاكاة أي طلب لا يحمل apidogToken صالحًا، سواء أُرسل في query string أو header أو جسم طلب نموذج.

كيف أجعل البيانات المولدة مناسبة لدولة معينة؟

اضبط لغة المشروع من Basic Settings، أو تجاوزها على مستوى المشروع من Mock Settings، أو عيّنها لحقل واحد:

{{$person.fullName(locale='ja')}}
Enter fullscreen mode Exit fullscreen mode

راجع أيضًا الدليل الشامل للمحاكاة الذكية.

هل أستخدم Cloud Mock أم أداة محاكاة بدون واجهة رسومية؟

استخدم Cloud Mock عندما تحتاج إلى رابط مستضاف وجاهز للمشاركة دون صيانة. إذا كنت تحتاج إلى محاكاة تعمل بالكامل ضمن بيئة تلقائية أو بدون واجهة رسومية، راجع أدوات المحاكاة بدون واجهة رسومية. تعتمد أدوات كثيرة على مواصفات OpenAPI Initiative، لذا حافظ على مواصفات API نظيفة في كل الأحوال.

الخلاصة

المحاكاة المحلية تزيل العائق عن مطور واحد فقط. أما Cloud Mock فيحوّل عقد API إلى رابط عام يمكن للفريق كاملًا استخدامه، مع دعم مصادقة الرمز المميز وبيانات تراعي اللغة والمنطقة الزمنية.

نفّذ الخطوات التالية:

  1. صمّم نقطة النهاية ومخطط الاستجابة.
  2. فعّل Cloud Mock.
  3. اختبر الرابط.
  4. أضف Token Authentication عند الحاجة.
  5. شارك الرابط مع الواجهة الأمامية وQA والشركاء.

نزّل Apidog وأنشئ أول Cloud Mock قابل للمشاركة.

Top comments (0)