DEV Community

Cover image for كيفية بناء واجهات برمجة التطبيقات باستخدام Cursor Composer 2.5
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

كيفية بناء واجهات برمجة التطبيقات باستخدام Cursor Composer 2.5

Cursor Composer 2.5 سريع ورخيص بما يكفي ليكتب وكيل AI عملاء API ومعالجات مسارات كاملة. لكن المشكلة تبدأ عند لمس خدمة حقيقية: قد يولّد النموذج طلبًا نظيفًا إلى /v2/orders بينما خدمتك تستخدم فعليًا /orders وتتوقع حمولة مختلفة. الكود يتجمّع، لكنه يفشل وقت التشغيل.

جرّب Apidog اليوم

في هذا الدليل ستبني سير عمل عمليًا يقلل هذه الأخطاء: اربط Composer 2.5 بمواصفات API الحقيقية عبر MCP، اجعله يولّد الكود بناءً على العقد الفعلي، ثم اختبر النتيجة في Apidog قبل أن تصل إلى زميل في الفريق. إذا كنت جديدًا على النموذج، فراجع دليل Cursor Composer 2.5.

لماذا تخمّن النماذج الوكيلة أشكال API؟

Composer 2.5 مصمم لمهام الوكيل الطويلة متعددة الخطوات. يمكنك أن تطلب منه:

أضف عميلًا لخدمة الفوترة واربطه بسير عمل الدفع.

سيخطط، يعدّل عدة ملفات، ويشغّل الاختبارات حتى تنجح. هذه ترقية مفيدة عن Composer 2.

لكن المشكلة بنيوية: إذا لم يمتلك النموذج عقد API داخل السياق، فسيملأ الفراغ بما يراه “الأكثر احتمالًا”:

  • أسماء حقول شائعة.
  • اتفاقيات REST عامة.
  • بادئات إصدار مثل /v1 أو /v2.
  • أنماط مصادقة افتراضية.

النتيجة تبدو صحيحة في مراجعة الكود، لكنها تفشل أمام خادمك لأن خادمك لا يمثل “متوسط” واجهات API على الإنترنت.

أعراض شائعة:

  • نقطة نهاية قريبة لكن خاطئة: /api/users/{id} بدلًا من /users/{userId}.
  • حقول مخترعة داخل body.
  • مصادقة عامة بدل المخطط الفعلي لخدمتك.

يمكنك لصق OpenAPI كاملًا في الدردشة، لكن هذا هش ويستهلك السياق بسرعة. الحل الأفضل هو إعطاء النموذج وصولًا منظمًا للمواصفات.

الحل: اربط Composer 2.5 بمواصفات API عبر MCP

بروتوكول سياق النموذج MCP هو معيار مفتوح لإتاحة الأدوات والبيانات لنماذج AI. يدعم Cursor خوادم MCP، ويعرض خادم Apidog MCP مواصفات API الموجودة في Apidog للنموذج كمصدر منظم يمكنه الاستعلام عنه أثناء كتابة الكود.

بدل أن يخمّن Composer 2.5 نقاط النهاية والمخططات والمعاملات، يمكنه قراءتها من العقد الحقيقي ثم كتابة الكود بناءً عليها. هذا هو نفس مبدأ الترميز السلس باستخدام خادم Apidog MCP، لكن مطبق على نموذج قادر على تنفيذ المهمة عبر عدة ملفات.

الخطوة 1: جهّز مواصفات API في Apidog

ابدأ من مصدر حقيقة واضح:

  1. صمّم API في Apidog، أو استورد مواصفات موجودة.
  2. تأكد من تحديث:
    • المسارات.
    • معاملات query/path/header.
    • مخططات request/response.
    • أمثلة الاستجابات.
    • حالات الخطأ مثل 400 و401 و422.

إذا كان لديك OpenAPI أو Postman Collection، يمكنك استيرادها إلى Apidog. المهم أن تكون المواصفات دقيقة، لأن Composer 2.5 سيبني الكود بناءً عليها.

الخطوة 2: اربط خادم Apidog MCP بـ Cursor

يقرأ Cursor خوادم MCP من ملف إعداد داخل المشروع، غالبًا:

.cursor/mcp.json
Enter fullscreen mode Exit fullscreen mode

مثال تكوين نموذجي:

{
  "mcpServers": {
    "apidog-api-spec": {
      "command": "npx",
      "args": [
        "-y",
        "apidog-mcp-server@latest",
        "--project=<your-project-id>"
      ],
      "env": {
        "APIDOG_ACCESS_TOKEN": "<your-access-token>"
      }
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

استبدل:

  • <your-project-id> بمعرّف مشروعك.
  • <your-access-token> برمز الوصول الخاص بك.

استخدم الأمر والقيم الدقيقة من دليل إعداد Apidog MCP، لأن الإعدادات قد تختلف حسب حسابك وإصدار الخادم.

بعد حفظ الملف، أعد تشغيل Cursor حتى يحمّل خادم MCP الجديد.

الخطوة 3: تأكد أن Composer 2.5 يرى المواصفات

قبل أن تطلب منه كتابة كود، اختبر الاتصال بسؤال قراءة فقط.

افتح جلسة Agent في Cursor، اختر composer-2.5، ثم اكتب:

باستخدام خادم apidog-api-spec MCP، اذكر نقاط النهاية ضمن مورد الطلبات والحقول المطلوبة لإنشاء طلب.
Enter fullscreen mode Exit fullscreen mode

إذا أعاد نقاط النهاية والحقول الفعلية من مشروعك، فالاتصال يعمل.

إذا أجاب بإجابة عامة أو اخترع مسارات، تحقق من:

  • اسم الخادم داخل mcp.json.
  • رمز الوصول.
  • معرّف المشروع.
  • أنك أعدت تشغيل Cursor.
  • أن المواصفات موجودة ومحدّثة في Apidog.

الخطوة 4: اجعله يولّد الكود وفقًا للعقد

الآن أعطه المهمة الحقيقية، واذكر مصدر MCP صراحةً:

باستخدام خادم apidog-api-spec كمصدر للحقيقة، اكتب عميل TypeScript مكتوبًا لواجهة orders API.

المطلوب:
- دالة createOrder.
- دالة getOrder.
- مطابقة مخططات الطلب والاستجابة بدقة.
- معالجة خطأ التحقق 422 كما تحدده المواصفات.
- عدم افتراض أي مسار أو حقل غير موجود في المواصفات.
Enter fullscreen mode Exit fullscreen mode

صياغة مثل “كمصدر للحقيقة” مهمة لأنها تقلل انجراف النموذج إلى الأنماط العامة.

مثال هيكل ناتج متوقع:

export async function createOrder(input: CreateOrderRequest): Promise<OrderResponse> {
  const response = await fetch("/orders", {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify(input)
  });

  if (response.status === 422) {
    const error = await response.json();
    throw new ValidationError(error);
  }

  if (!response.ok) {
    throw new Error(`Create order failed: ${response.status}`);
  }

  return response.json();
}
Enter fullscreen mode Exit fullscreen mode

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

تحقق قبل أن تثق: حلقة اختبار Apidog

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

استخدم هذه الحلقة:

  1. شغّل الطلبات المولّدة كطلبات حقيقية

    خذ نقاط النهاية التي كتبها Composer 2.5 وشغّلها في Apidog مقابل بيئة حقيقية أو mock. تحقق من:

    • status code.
    • response body.
    • headers.
    • المصادقة.
    • حالات الخطأ.
  2. حوّل الطلبات الصحيحة إلى اختبارات

    احفظ الطلبات التي تم التحقق منها كسيناريوهات اختبار تلقائية. بهذه الطريقة، يلتقط CI الانحدار بدلًا من المستخدم.

  3. استخدم mock لما لم يُبنَ بعد

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

القاعدة العملية:

النموذج يكتب المسودة الأولى وفقًا للعقد، وأنت تتحقق من أنها تعمل أمام خادم حقيقي.

مثال عملي: إضافة ميزة استرداد أموال

لنفترض أنك تضيف ميزة refund إلى خدمة المدفوعات.

1. جهّز العقد

تأكد أن مشروع Apidog يحتوي على:

  • نقطة نهاية إنشاء استرداد.
  • مخطط request.
  • مخطط response.
  • رأس idempotency-key إذا كان مطلوبًا.
  • حالات الخطأ، مثل 409 عند التكرار.

2. اطلب من Composer 2.5 التنفيذ

استخدم مطالبة صريحة:

باستخدام apidog-api-spec، أنشئ refund client وخطاف React يستدعيه.

التزم بالتالي:
- اتبع مخطط create-refund بدقة.
- أرسل رأس idempotency-key كما تتطلب المواصفات.
- عالج 409 عند تكرار الطلب.
- أضف أنواع TypeScript من العقد.
- لا تضف حقولًا غير موجودة في المواصفات.
Enter fullscreen mode Exit fullscreen mode

3. راجع الملفات الناتجة

توقع أن يعدّل ملفات مثل:

src/api/refunds.ts
src/hooks/useCreateRefund.ts
src/types/refunds.ts
Enter fullscreen mode Exit fullscreen mode

راجع تحديدًا:

  • هل المسار صحيح؟
  • هل body مطابق للمخطط؟
  • هل idempotency-key موجود؟
  • هل معالجة 409 مطابقة للمواصفات؟

4. اختبر في Apidog

افتح Apidog وشغّل:

  1. طلب create-refund صالح.
  2. نفس الطلب مرة ثانية بنفس idempotency-key.
  3. تحقق من سلوك 409 عند التكرار.
  4. احفظ السيناريوهات كاختبارات.

ما تجنبته هنا: عميل ينسى رأس المثابرة، فيسمح باسترداد مكرر في بيئة اختبار أو إنتاج.

قائمة تحقق سريعة

قبل دمج الكود الذي كتبه Composer 2.5، تحقق من الآتي:

  • [ ] خادم MCP يعمل داخل Cursor.
  • [ ] النموذج قرأ نقاط النهاية من Apidog، لا من المعرفة العامة.
  • [ ] المسارات مطابقة للمواصفات.
  • [ ] request body لا يحتوي حقولًا مخترعة.
  • [ ] المصادقة مطابقة للعقد.
  • [ ] حالات الخطأ المهمة معالجة.
  • [ ] الطلبات شُغّلت في Apidog.
  • [ ] الطلبات الصحيحة حُفظت كاختبارات.

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

هل يدعم Composer 2.5 بروتوكول MCP؟

نعم. لديه وصول إلى أدوات الوكيل في Cursor، بما في ذلك خوادم MCP. حدده من منتقي النموذج، ثم عرّف خادم MCP داخل مشروعك. راجع دليل Composer 2.5 لمعرفة كيفية اختيار النموذج.

هل أحتاج إلى Apidog لاستخدام MCP مع Composer 2.5؟

تحتاج إلى مصدر مواصفات منظم. خادم Apidog MCP هو المسار المستخدم هنا لأنه يجمع المواصفات، الاختبار، والمحاكاة في مكان واحد. توجد خيارات أخرى ضمن أفضل خوادم MCP لـ Cursor.

هل يمنع هذا كل هلوسات النموذج؟

لا. لكنه يزيل فئة كبيرة من الأخطاء: المسارات والمخططات والحقول الخاطئة. لا يزال الاختبار ضروريًا لأن المواصفات قد تنحرف عن الخدمة الفعلية.

هل يستحق الإعداد لمشروع صغير؟

نعم، إذا كان النموذج يتعامل مع API حقيقية. الإعداد غالبًا ملف تكوين لمرة واحدة، والعائد أن كل استدعاء API يولّده النموذج يستند إلى عقدك بدل تخمين معقول.

الخلاصة

Composer 2.5 مفيد عندما يكتب كود API وفقًا لعقدك الفعلي، لا وفق أنماط عامة. اربط مواصفاتك عبر خادم Apidog MCP حتى يقرأ النموذج الحقيقة، ثم استخدم Apidog لإرسال الطلبات، تأكيد الاستجابات، وتحويل السيناريوهات الصحيحة إلى اختبارات ومحاكاة. هذا هو سير العمل العملي: توليد قائم على المواصفات، ثم تحقق قبل الدمج.

Top comments (0)