انتقل إلى المحتوى الرئيسي

عقدة admin-api

عقدة admin-api توفر وصولاً مباشراً إلى واجهة برمجة التطبيقات الداخلية لـ OneEntry. من خلالها يمكن قراءة وتعديل الطلبات، الصفحات، المستخدمين، المجموعات، وجلسات الدفع مباشرة من تدفق التكامل - دون الحاجة لكتابة طلبات HTTP يدوياً.


إعدادات عقدة admin-api

IMG2

1. الاسم

حقل لتحديد اسم العقدة.
يظهر الاسم في مساحة العمل ويساعد في التعرف بسهولة على العقدة.
إذا ترك فارغاً، ستسمى العقدة admin-api.

مثال:

  • اسم العقدة: إنشاء جلسة دفع

2. النوع

اختيار طريقة API التي سيتم استدعاؤها عند مرور الرسالة عبر العقدة. الطرق المتاحة:

  • "تحديث كائن الصفحة" — تحديث كائن الصفحة
  • "البحث عن جميع الكائنات في صفحات المنتجات مع الترقيم لفئة محددة" — البحث عن المنتجات مع الترقيم
  • "تغيير حالة صفحة المنتج" — تغيير حالة صفحة المنتج
  • "تحديث صفحة المنتج" — تحديث صفحة المنتج
  • "تحديث كائن المستخدم - مسؤول" — تحديث كائن المستخدم (بواسطة المسؤول)
  • "تحديث كائن مستخدم واحد" — تحديث كائن مستخدم واحد
  • "تحديث قيمة سمة كائن واحد" — تحديث قيمة سمة الكائن
  • "استلام جميع الطلبات التي تنتمي إلى كائن تخزين الطلبات" — استلام جميع الطلبات من التخزين
  • "تحديث حالة طلب ينتمي إلى كائن تخزين الطلبات" — تحديث حالة الطلب
  • "تحديث جلسة الدفع" — تحديث جلسة الدفع
  • "استلام كائن جلسة الدفع بواسطة معرفه" — استلام جلسة الدفع بواسطة ID
  • "إنشاء جلسة دفع" — إنشاء جلسة دفع
  • "استلام جميع السجلات التي تنتمي إلى المجموعة" — استلام سجلات المجموعة
  • "إنشاء سجل في المجموعة" — إنشاء سجل في المجموعة
  • "تغيير سجل في المجموعة" — تغيير سجل في المجموعة
  • "حذف كائن من سجل المجموعة" — حذف كائن من سجل المجموعة

3. معلمات الاستعلام

معلمات طلب URL. يستخدم الحقل بناء جملة Mustache - يمكن إدراج القيم من msg عبر {{المتغير}}.

مثال (لطريقة "استلام جميع السجلات التي تنتمي إلى المجموعة"):

{
"entityType": "orders",
"entityId": "{{orderId}}",
"langCode": "en_US",
"offset": 0,
"limit": 1,
"marker": "delivery"
}

4. جسم الطلب

جسم الطلب بتنسيق JSON. يدعم Mustache لإدراج البيانات من msg.

مثال (لطريقة "إنشاء جلسة دفع"):

{
"orderId": {{orderId}},
"type": "session"
}

5. مخطط الإدخال

يظهر قسم مخطط الإدخال في إعدادات العقدة ويعرض هيكل البيانات التي تأتي من العقدة السابقة في التدفق. يتم تقديم المخطط في شكل أزواج "مفتاح - نوع"، مع مراعاة تداخل الكائنات.

إذا كانت حقول المخطط موصوفة في Swagger، تظهر بجانبها أوصاف نصية. يتم التقاط هذه الأوصاف أيضاً بواسطة محرر الكود (Monaco) كإشارات عند كتابة قوالب Mustache.

مثال على عرض مخطط الإدخال:

payload
└── order
├── id (integer) — معرف الطلب
├── status (string) — الحالة الحالية
└── totalPrice (number) — المبلغ الإجمالي

6. زر التنفيذ

زر تنفيذ يسمح باستدعاء طلب API مباشرة من نموذج تحرير العقدة، دون الحاجة لتشغيل التدفق بالكامل.

كيف يعمل:

  • يقوم الخادم بتنفيذ كامل التدفق من البداية حتى هذه العقدة، مع تمرير البيانات عبر السلسلة وفقاً لأحدث حالة منشورة للتدفق.
  • إذا كانت أي عقدة function في الطريق لا تمرر البيانات إلى الأمام، ولكن لديها حقل مثال الإخراج (JSON) ممتلئ، يتم استخدام هذه البيانات كبيانات وهمية.
  • في حالة استجابة ناجحة، يتم تمرير استجابة API إلى العقدة التالية كهيكل.
  • إذا أعاد الطلب خطأ - لا يتم تمرير الهيكل إلى العقدة التالية.
معلومات

قبل استخدام زر التنفيذ، تأكد من أن التدفق منشور. يقوم الخادم بتنفيذ السلسلة وفقاً لحالة آخر publish.

التأثير على الهيكل:

تحتوي عقدة admin-api في الأصل على هيكل استجابة من Swagger. عند الضغط على تنفيذ، يتم الكتابة فوق الهيكل باستجابة حقيقية من API. في هذه الحالة، تبقى الحقول التي تتطابق مع وصف Swagger على أوصافها النصية.


7. استدعاء تلقائي لطلبات القراءة فقط

تتم استدعاء جميع العقد admin-api التي تنفذ طلبات القراءة فقط (GET) تلقائياً:

  • عند فتح صفحة التكاملات،
  • عند تحديث التدفق عبر زر النشر.

هذا يضمن دائماً وجود هيكل بيانات محدث في العقدة التالية دون الحاجة لتشغيل يدوي.


أمثلة الاستخدام

مثال 1: إنشاء جلسة دفع

إعدادات العقدة:

  • النوع: إنشاء جلسة دفع
  • جسم الطلب:
    {
    "orderId": {{orderEvent.order.id}},
    "type": "session"
    }

النتيجة:
تقوم العقدة بإنشاء جلسة دفع، باستخدام orderId من الرسالة الواردة، وتقوم بتمرير بيانات الجلسة الجديدة إلى العقدة التالية.


مثال 2: تحديث حالة الطلب

إعدادات العقدة:

  • النوع: تحديث حالة طلب ينتمي إلى كائن تخزين الطلبات
  • معلمات الاستعلام:
    {
    "id": {{orderId}}
    }
  • جسم الطلب:
    {
    "status": "{{newStatus}}"
    }

النتيجة:
تقوم العقدة بتحديث حالة الطلب، باستخدام البيانات من الرسالة الواردة.


مثال 3: استلام سجلات المجموعة

إعدادات العقدة:

  • النوع: استلام جميع السجلات التي تنتمي إلى المجموعة
  • معلمات الاستعلام:
    {
    "entityType": "delivery",
    "entityId": "{{payload.id}}",
    "langCode": "en_US",
    "offset": 0,
    "limit": 10
    }

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