مسجل مخصص
إنشاء المسجل الخاص بك
في حالة عدم كفاية الأدوات المذكورة أعلاه للعثور على الأخطاء ، يمكنك دائمًا إنشاء المسجل الخاص بك وتنفيذ جميع احتياجاتك فيه. على سبيل المثال ، دعنا ننشئ أداة تسجيل ستضيف معلومات حول المستخدم الذي أطلق هذا الحدث ومستوى الوصول الخاص به بالإضافة إلى الوصف العام للحدث.
نموذج بيانات المسجل
للقيام بذلك ، لنبدأ بإنشاء نموذج في قاعدة البيانات. نحتاج إلى نموذج بسيط للغاية ، مع ثلاثة حقول مطلوبة.
- info (text) - معلومات عامة عن الحدث
- user (integer) - معرف المستخدم
- access (array string) - مجموعات المستخدمين (قد يكون هناك عدة)
عملية الأعمال المسجل
بعد ذلك ، سننشئ عملية تجارية لكتابة سجل إلى قاعدة البيانات. وستتمثل مهمتها في تلقي معلومات حول أي حدث ، وتكميلها بمعلومات عن المستخدم ، وحفظ النتيجة النهائية في قاعدة البيانات.
للحصول على معلومات حول المستخدم ، استخدم Auth: Get current user . لاحظ أنه لن يكون قادرًا على تمثيل النتيجة كنموذج مستخدم إلا إذا تم تمكين Middleware Token Auth في نقطة النهاية التي بدأت تنفيذها.
نستخدم Expand User لتوسيع النتيجة والحصول على الحقول المطلوبة. في حالتنا ، هذه هي ID وتسجيل Login Groups . يعد استخدام الأولين أمرًا عاديًا تمامًا ، فأنت تحتاج فقط إلى تحويل Login من تنسيق البريد إلى String قياسية ( To String ).
في حالة مجموعات المستخدمين ، يكون الوضع أكثر تعقيدًا إلى حد ما. يتم تخزينها بتنسيق Enum . هذا نوع معدود يخزن فقط قائمة من المعرفات في قاعدة البيانات ، وليس قيمها النصية. في حالتنا ، تتوافق القيمة 1 مع مجموعة المسؤولين ( Admins ) ، والقيمة 2 مع مجموعة المستخدمين ( Users ).
مهمتنا هي فك تشفير هذا المعرف وكتابة النتيجة في شكل بيانات نصية ملائمة. لهذا تحتاج:
- قم بتعريف المتغير الذي سيتم كتابة المعلومات النصية حول مجموعات المستخدمين فيه. دعنا نستخدم String Array و Set Variable block.
- ابدأ الحلقة بكتلة For each loop . ستتلقى مجموعة من مجموعات المستخدم ، ثم في كل تكرار ، قم بتحويل المجموعة التالية إلى قيمتها النصية وإضافتها إلى المصفوفة.
- باستخدام كتلة Switch ، تحقق من مجموعة المستخدمين ، واعتمادًا على النتيجة ، قم بتوجيه العملية إلى أبعد من ذلك.
- باستخدام الكتل String and Set Variable ، قم بتخزين القيمة المطلوبة لمجموعة المستخدم في متغير.
- استخدم كتل Append Array Set Variable لإضافة النتيجة إلى مصفوفة وتخزينها في متغير تم الإعلان عنه قبل بداية الحلقة.
عند الانتهاء من الحلقة ، يجب عليك استخدام Concat Strings (Multiple) لتشكيل سلسلة نهائية من البيانات المتفرقة ، والتي سيتم تحويلها إلى Text وكتابتها في السجل.
آخر شيء يجب القيام به هو إنشاء نموذج log وكتابته في قاعدة البيانات.
يجب أن يبدو BP الناتج كما يلي:
نقطة نهاية المسجل
عملية الأعمال جاهزة. الآن نحن بحاجة إلى إنشاء نقطة نهاية لها. للقيام بذلك ، سنقوم باستبدال عملية عمل النظام الخاصة بـ POST /log/ endpoint بعملية الأعمال التي تم إنشاؤها للتو.
الآن سجلنا جاهز تمامًا للعمل. يمكنك العودة إلى بداية الوحدة النمطية ، إلى عملية أعمال Basic functions ، واستبدال السجل القياسي بالسجل الذي قمت بإنشائه بنفسك.
الآن ، في كل مرة يتم فيها بدء العمليات الحسابية ، سيسجل السجل الخاص ليس فقط المعلومات حول حقيقة هذا الحدث ، ولكن أيضًا حول المستخدم الذي قام بذلك. يمكننا التحقق من النتيجة في Swagger .
رائع ، سجلنا يعمل حقًا. الآن يحتوي على معلومات حول الحدث ، وتسجيل دخول المستخدم ، وحقوق الوصول الخاصة به.
الأخطاء المحتملة والإجراءات الموصى بها
نتيجة لذلك ، نقوم ببناء المتغيرات المحتملة للأخطاء والإجراءات لتصحيحها.
- أخطاء في العملية التجارية نفسها. يوصى باستخدام السجلات للتحقق خطوة بخطوة. وبالتالي ، يمكنك التحقق من حقيقة بدء كتلة معينة من عملية الأعمال وجميع المعلمات التي يستخدمها الكتلة ، سواء عند الإدخال أو الإخراج.
- أخطاء في إرسال الطلب إلى الخادم. للقيام بذلك ، استخدم Developer Tools في المستعرض. يمكنك التحقق من إرسال الطلب وتحليل هيكله والاطلاع على الاستجابة المستلمة.
- الطلبات مشوهة. يوصى باستخدام Swagger للاختبار الشامل والتحقق من خيارات الاستعلام المختلفة ومجموعات المعلمات.
- لم يتم تحليل نتيجة الطلب بشكل صحيح. يحدث أننا ننتظر النتيجة حيث لا ينبغي أن تكون. على سبيل المثال ، نقوم بإضافة البيانات إلى قاعدة البيانات ولكن لا نقوم بتحديثها في الجدول الذي يعرض هذه البيانات. تذكر أن كل مكون يتطلب عملية أعمال مقابلة ، وتأكد من تكوين هذه العملية بشكل صحيح.