Apidog هو نظام أساسي للتعاون وإدارة واجهات برمجة التطبيقات (API) يدعم استيراد مواصفات واجهات برمجة التطبيقات بالعديد من التنسيقات. يمكنه استيراد جميع تنسيقات مواصفات واجهات برمجة التطبيقات السائدة تقريبًا بشكل مباشر، بما في ذلك OpenAPI/Swagger، Postman Collections، ملفات HAR، وأوامر cURL.
ومع ذلك، في العديد من المشاريع الحقيقية، لا يكمن التحدي الرئيسي في كيفية استيراد مواصفات واجهات برمجة التطبيقات، بل في عدم توفر أي مواصفات لواجهات برمجة التطبيقات للاستيراد من الأساس. بعض الأنظمة القديمة أو التراثية لم تحتفظ أبدًا بوثائق واجهات برمجة التطبيقات وليس لديها ملفات OpenAPI أو Swagger.
في هذه الحالات، إذا كنت بحاجة إلى إعادة بناء سريعة لوثائق واجهات برمجة التطبيقات المفقودة أو إنشاء حالات اختبار ليتمكن المختبرون من العمل ببيانات حقيقية، فإن استخدام أداة التقاط الحزم غالبًا ما يكون الأسلوب الأسرع.
من خلال التقاط حركة مرور HTTP/HTTPS للتطبيق، وتصفية الطلبات المفيدة، وتصديرها كملفات HAR أو cURL، ثم استيرادها إلى Apidog، يمكنك إنشاء وثائق واجهات برمجة التطبيقات بسرعة ووضع الأساس لمزيد من اختبارات واجهات برمجة التطبيقات.

تتوفر العديد من الأدوات لتسجيل حركة المرور. تستخدم هذه المقالة Charles Proxy كمثال لتوضيح العمليات المحددة المتضمنة، ولكن يمكنك أيضًا استخدام بدائل مثل Proxyman أو Fiddler أو أدوات المطور المضمنة في متصفحك لالتقاط الحزم. سير العمل الأساسي هو نفسه تقريبًا عبر هذه الأدوات.

تثبيت Charles والتكوين الأساسي
Charles يقدم نسخة تجريبية مجانية لمدة 30 يومًا. يمكنك تنزيل أحدث إصدار من الموقع الرسمي وتثبيته على نظامك.
عند تشغيل Charles لأول مرة، قد يسألك عما إذا كنت تريد تكوين إعدادات الشبكة تلقائيًا. يُنصح بتحديد "منح الامتيازات" لمنح الأذونات اللازمة. يتيح ذلك لـ Charles التقاط حركة مرور HTTP من نظامك تلقائيًا.

تثبيت شهادة Charles الجذرية لالتقاط HTTPS
لالتقاط حركة مرور HTTPS، تحتاج إلى تثبيت شهادة Charles الجذرية. هذه الخطوة ضرورية لأن معظم واجهات برمجة التطبيقات الحديثة تستخدم HTTPS.
على نظام macOS:
- انقر على "مساعدة ← SSL Proxying ← تثبيت شهادة Charles الجذرية" من شريط القائمة
- سيتم فتح تطبيق "الوصول إلى سلسلة المفاتيح" تلقائيًا
- ابحث عن شهادة Charles Proxy وحددها
- انقر نقرًا مزدوجًا عليها وقم بتغيير إعداد الثقة إلى "الثقة دائمًا"
على نظام Windows:
- انقر على "مساعدة ← SSL Proxying ← تثبيت شهادة Charles الجذرية" من شريط القائمة
- أثناء عملية التثبيت، قم بتثبيت الشهادة في مخزن "الجهات المصدقة للشهادات الجذرية الموثوقة"
تمكين وكيل SSL
بعد تثبيت الشهادة، تحتاج إلى تمكين وكيل SSL:
- حدد وكيل ← إعدادات وكيل SSL من شريط قائمة Charles
- حدد خيار "تمكين وكيل SSL"
3. أضف أسماء النطاقات (المضيف) والمنافذ (المنفذ 443) التي تريد التقاطها إلى القائمة
4. يمكنك أيضًا استخدام * لمراقبة جميع النطاقات
بعد اكتمال التكوين، يمكن لـ Charles التقاط طلبات واستجابات HTTP/HTTPS الكاملة.
نصيحة: إذا لم تكن متأكدًا من النطاقات التي يستخدمها تطبيقك، يمكنك أولاً تشغيل التطبيق بحرية ثم مراقبة الطلبات تحت "مشفرة" في قائمة جلسات Charles. لاحظ النطاقات المقابلة ثم أضفها إلى إعدادات SSL Proxying في Charles.
تسجيل حركة مرور واجهة برمجة التطبيقات من تطبيقك
قم بتشغيل التطبيق أو صفحة الويب التي ترغب في تحليلها وتفاعل مع الميزات المختلفة، مثل تسجيل الدخول، الاستعلام عن البيانات، إرسال النماذج، أو تحميل الملفات. ستتحدث شجرة الجلسات على الجانب الأيسر من Charles في الوقت الفعلي، وتجمع الطلبات حسب النطاق وعنوان URL.

عند تحديد طلب معين، تعرض اللوحة اليمنى المعلومات الأساسية ومحتوى الاستجابة لهذا الطلب. في علامة التبويب "المحتويات"، يتم طي استجابات JSON وغيرها في بنية شجرية، مما يسهل فهم بنية البيانات وحقولها بسرعة.
تصفية وتصدير نقاط نهاية واجهة برمجة التطبيقات
بعد اكتمال التسجيل، قد تجد أنه تم التقاط عدد كبير من الطلبات. بالإضافة إلى استدعاءات واجهة برمجة التطبيقات الفعلية، هناك طلبات موارد ثابتة مختلفة، واستدعاءات خدمة طرف ثالث، وحركة مرور شبكة أخرى. في هذه المرحلة، تحتاج إلى تصفية والاحتفاظ فقط بنقاط النهاية التي تهتم بها.
خيارات التصفية
التركيز على نطاقات أو مسارات محددة:
- انقر بزر الماوس الأيمن على نطاق أو مسار واختر "تركيز"
- سيحتفظ Charles فقط بالطلبات تحت هذه العقدة، مما يجعل تحليلها مريحًا
إزالة الطلبات غير ذات الصلة:
- انقر بزر الماوس الأيمن على الطلبات غير ذات الصلة واختر "مسح" لإزالتها
- أو حدد عدة طلبات واحذفها دفعة واحدة
التعامل مع مشاكل التخزين المؤقت:
- إذا تسبب التخزين المؤقت في عدم عرض HTML أو JSON بشكل صحيح، فانقر بزر الماوس الأيمن واختر "لا يوجد تخزين مؤقت"
- سيؤدي هذا إلى تجاهل Charles للتخزين المؤقت في الطلبات اللاحقة، مما يتيح لك التقاط محتوى الاستجابة كاملاً
التصدير كملف HAR
بعد اكتمال التصفية، قم بتصدير جلساتك المختارة:
- حدد الجلسات التي تريد تصديرها:
يمكنك تحديد عقدة نطاق كاملة، أو
اضغط على Cmd (Mac) أو Ctrl (Windows) وحدد طلبات معينة بشكل فردي
اختر ملف ← تصدير الجلسة من شريط القائمة
في مربع حوار التصدير، اختر التصدير بتنسيق "HTTP Archive (.har)" لإنشاء ملف HAR
الاستيراد إلى Apidog لإنشاء وثائق واجهة برمجة التطبيقات تلقائيًا
حان الوقت الآن لاستيراد حركة المرور الملتقطة إلى Apidog:
- افتح عميل Apidog
2. اذهب إلى إعدادات المشروع ← استيراد البيانات ← ملف .har
3. حدد ملف HAR الذي قمت بتصديره من Charles

سيقوم Apidog بتحليل محتوى الملف تلقائيًا وعرض معلومات نقطة النهاية المكتشفة في منطقة المعاينة، بما في ذلك:
- عدد نقاط النهاية المكتشفة
- طرق الطلب (GET، POST، PUT، DELETE، إلخ.)
أثناء عملية الاستيراد، يمكنك تكوين خيارات مثل:
- الوحدة النمطية التي سيتم الاستيراد إليها
- ما إذا كان سيتم الكتابة فوق نقاط النهاية الموجودة
بعد اكتمال الاستيراد، يمكنك عرض نقاط النهاية في الوحدة النمطية المقابلة.
تحسين وثائق واجهة برمجة التطبيقات وتجويدها
وثائق واجهة برمجة التطبيقات التي يتم إنشاؤها تلقائيًا هي نقطة بداية رائعة، ولكنها تتطلب عادةً تعديلات إضافية لتلبية متطلبات عملك. فيما يلي بعض التحسينات الشائعة:
- تحسين أسماء نقاط النهاية: قم بتغيير الأسماء العامة إلى أسماء أكثر وصفية
- إضافة وصف للمعلمات: وثق ما تفعله كل معلمة ومتى تستخدمها
- تحسين مكونات الاستجابة: نظم مكونات الاستجابة لتتناسب مع منطق عملك
- إضافة أمثلة: قم بتضمين طلبات واستجابات نموذجية
- تكوين المصادقة: إذا كانت نقطة النهاية تتطلب مصادقة، قم بتكوين المعلومات المقابلة في متغيرات بيئة Apidog أو إعدادات المصادقة. يضمن ذلك عمل استدعاءات واجهة برمجة التطبيقات الخاصة بك بشكل صحيح عند الاختبار.
خلاصة القول
من خلال تسجيل حركة مرور HTTP/HTTPS باستخدام أدوات التقاط الحزم ثم استيرادها إلى Apidog، يمكنك إنشاء وثائق واجهة برمجة التطبيقات بسرعة وتوفير دعم بيانات حقيقي للاختبار.
سواء كان ذلك متصفحًا أو عميل سطح مكتب أو تطبيق جوال، يمكن لهذه الطريقة أن تقلل بشكل كبير من الوقت المستغرق في إعداد وثائق واجهة برمجة التطبيقات وتسمح لفريقك بالبدء بسرعة في اختبار واجهات برمجة التطبيقات وتطويرها.
