عند إنشاء نقطة نهاية لعملية أعمال ، يجب عليك تحديد نوع البيانات التي سيتم إرسالها في هذا الطلب ( Request payload type ). الخيار الأكثر شيوعًا هو JSON ؛ يسمح لك بتحديد جميع المعلمات الضرورية بسهولة وتمرير نموذج بيانات أو مجموعة من الكائنات. بالإضافة إلى ذلك ، هناك خيارات أخرى ممكنة ، على سبيل المثال ، XML أو Multipart Form (إذا كنت بحاجة إلى إرسال ملفات).

في الوقت نفسه ، يكون الموقف مقبولًا عندما لا يكون الهيكل الدقيق معروفًا مسبقًا (أو ببساطة لا يهم). في هذه الحالة ، يكون الخيار المعقول هو استخدام الاستعلامات " raw ".

request payload type

عملية الأعمال للطلبات raw

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

من الميزات المهمة في الاستعلامات Raw عدم استخدام معلمات الإدخال عند تصميم العمليات التجارية. بدلاً من ذلك ، يتم استخدام كتلة خاصة للحصول على نص الطلب - Get Request Body . افترض أنك مهتم بمعلومات موسعة حول الطلب. في هذه الحالة ، تعد كتلة Current Request Info خيارًا مناسبًا - فهي لا تُرجع نص الطلب فحسب ، بل تُرجع أيضًا معلمات إضافية ورؤوس الطلبات.

Current Request Info

في حالة اهتمامنا برأس معين من الطلب ، يمكن الحصول عليه باستخدام كتلة Get Request Header . يقرأ المثال أعلاه رأس X-Real-IP ، والذي يحتوي على عنوان IP للطلب. يتم تمرير IP الناتج إلى وظيفة يجب أن تتحقق من أن عنوان IP المحدد صالح وليس في القائمة السوداء للعناوين المحظورة. نتيجة لذلك ، سيتم إما إحباط العملية برسالة خطأ مناسبة أو ، إذا كان كل شيء على ما يرام ، فسيتم السماح بمزيد من التنفيذ.

IP Check

يتم تمثيل الطلب ، الذي تم استلامه كـ Raw ، كمصفوفة من البايت. لتسهيل الإدراك ، يمكن تحويلها إلى سلسلة ( To String block) ؛ في هذا النموذج ، يتم تخزين المعلومات في السجلات.

في هذه الحالة ، يمكن إعادة توجيه الطلب نفسه ، بدون أي تحويلات ، باستخدام كتلة HTTP Request . في هذا المثال ، يتم تحديد طريقة الطلب وعنوان URL الخاص به ونص الطلب (الذي تم الحصول عليه من كتلة Current Request Info ). يتم استخدام نتيجة كتلة HTTP Request كنتيجة لعملية الأعمال بأكملها.

HTTP Request

تظهر لقطة الشاشة العملية التجارية النهائية. يرجى ملاحظة أن كتل الوظائف ( FUNC Save request Log و FUNC IP Blacklist Check ) هي أمثلة ولا توجد إلا في نطاق هذا المشروع.

BP Complete

وبالتالي ، يمكن استخدام نقطة النهاية للتعامل مع أي طلب بغض النظر عن محتواه الفعلي. لا تحتاج إلى معرفة الطلب الدقيق الذي يجب إرساله إلى خدمة جهة خارجية ، وحتى إذا كانت هناك بعض التغييرات فيه (إضافة نموذج ، وإعادة تسمية المعلمات) ، يمكنك الاستمرار في استخدام نقطة النهاية دون إجراء تغييرات على مشروع.

Was this article helpful?

AppMaster.io 101 حلقة دراسية مكثفة

10 وحدات
2 أسابيع

لست متأكدا من أين تبدأ؟ ابدأ في الدورة التدريبية المكثفة للمبتدئين واستكشف AppMaster من الألف إلى الياء.

ابدأ الدورة
Development it’s so easy with AppMaster!

هل تريد المزيد من المساعدة؟

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

headphones

اتصل بالدعم

أخبرنا عن مشكلتك ، وسنجد لك حلاً.

message

دردشة المجتمع

ناقش الأسئلة مع مستخدمين آخرين في محادثتنا.

الانضمام إلى المجتمع