في هذه الوحدة في الدرس الأول،
تعلمنا كيفية بناء خادم REST API كامل باستخدام express.
لذلك نحن قادرون على خدمة
طلبات GET و PUT و POST و DELETE القادمة إلى مختلف نقاط نهاية API REST.
ولكن، الخادم نفسه كان ببساطة يعيد
رسالة بسيطة استجابة لهذه الطلبات.
في خادم REST API الحقيقي،
سيستتبع أي طلب وارد عملية مقابلة ليتم تنفيذها على الجزء الخلفي في
قاعدة البيانات ربما لاسترداد البيانات للرد على طلب GET،
أو ربما لتعديل البيانات الموجودة على الخادم استجابة لطلب PUT.
الآن في بقية هذه الوحدة،
درسنا كيف يمكننا التفاعل من تطبيق عقدة مع خادم MongoDB،
سواء كان ذلك باستخدام برنامج تشغيل MongoDB أو باستخدام Mongoose.
الآن، لن يكون خادم REST API الكامل القادر
على التعامل مع نهاية الطلب إلى النهاية ممكنًا إلا عندما ندمج الاثنين معًا.
بمعنى، خادم قائم على Express يقوم
بجميع معالجة منطق الأعمال وفي الوقت نفسه سيصدر
طلبات قاعدة البيانات إلى MongoDB
باستخدام برنامج تشغيل MongoDB العقدة أو باستخدام Mongoose.
إذن كيف نجمع بين الاثنين معاً؟
إذن هذا ما سننظر إليه في هذا الدرس بالذات،
والممارسين اللذين سنقوم بهما كجزء من هذا الدرس. لقد
تعلمنا الآن كيفية
إنشاء خادم REST API باستخدام Express
وخدمة الطلبات المختلفة القادمة إلى نقاط نهاية API REST.
لقد رأينا أيضا كيف يمكننا التفاعل مع قاعدة البيانات من تطبيق عقدة لدينا.
الآن، بالنظر إلى أن لديك طلب GET قادم إلى الخادم كمثال،
للتعامل مع طلب GET هذا من النهاية إلى النهاية،
فإن طلب GET القادم من العميل يعني أن العميل يريد استرداد
البيانات من الخادم واستخدام تلك البيانات.
لذلك، يجب معالجة طلب GET الوارد إلى الخادم
من خلال المعالجة المختلفة التي تقوم بها، على سبيل المثال،
خادم Express وبمجرد الانتهاء من المعالجة،
يدرك منطق عمل Express Server أنه يحتاج إلى
إجراء عملية استعلام على قاعدة البيانات.
لذلك، قد يبدأ هذا استعلام إلى قاعدة البيانات من أجل
جلب مجموعة من المستندات من قاعدة البيانات،
ومن ثم سيتم
تحويل البيانات التي تم استردادها إلى رسالة رد ثم إرسالها مرة أخرى إلى الخادم.
لذلك فإن هذا التعامل من طرف إلى طرف للطلب والاستجابة ينطوي على جزأين.
واحد بالطبع القيام منطق الأعمال في
خادم Express ثم القيام بالتفاعل مع
قاعدة البيانات من تطبيق العقدة من خادم Express وهو
تطبيق عقدة باستخدام برنامج تشغيل MongoDB أو Mongoose.
سوف نستخدم النمس في التدريبات.
وبالمثل، فإن طلب POST القادم إلى
نقطة نهاية REST API على الخادم يعني أن
طلب POST يجلب بعض البيانات في نص الرسالة.
لذلك، يجب معالجة هذه المعلومات في خادم Express
ويجب استرداد المعلومات التي تحتاج إلى تخزينها في قاعدة البيانات من نص طلب POST الوارد ومن ثم يجب
إنشاء طلب إنشاء المقابلة
أو البدء من خادم Express إلى قاعدة بيانات MongoDB
، وفي طلب الإنشاء،
سيتم إرسال المعلومات التي تم استردادها من نص طلب POST
إلى قاعدة البيانات لإنشاء مستند جديد في مجموعة محددة في قاعدة البيانات.
ثم سيتم إرسال نتيجة هذه العملية
مرة أخرى إلى العميل في رسالة الرد.
لذا، فإن أي عملية تتم على نقطة نهاية REST API سواء كانت عملية GET أو
PUT أو POST
أو DELETE،
كما ترى من هذين المثالين،
ستبدأ عملية قاعدة بيانات مقابلة خلف الكواليس.
لذلك بعد فهم هذا التفاعل،
ما ندركه هو أن طلب HTTP القادم إلى
نقطة نهاية واجهة برمجة تطبيقات REST يجب أن يتم تعيينه في عملية قاعدة بيانات مقابلة.
لذا فإن كل طلب وارد، أو GET أو PUT
أو POST أو DELETE يعني أنه يمكن الوصول إلى مورد معين في قاعدة البيانات،
أو يمكن استرجاعه أو يمكن
استرداد مجموعة من الموارد من قاعدة البيانات ثم إرسالها مرة أخرى إلى الخادم،
أو قد يتم تعديل مورد استجابة لـ PUT أو POST
أو حتى طلب DELETE قادم إلى خادم REST API.
لذلك الأمر متروك لمنطق خادم Express،
منطق الأعمال المنفذ في خادم Express REST API،
للتعامل مع هذه الترجمة للطلب الوارد سواء كان طلب GET أو
PUT أو POST أو DELETE في عملية قاعدة البيانات المقابلة.
لذلك دعونا ننظر إلى مثال على ذلك بمزيد من التفصيل.
لذلك، القادمة إلى الجمع بين جهاز التوجيه Express بالإضافة إلى
MongoDB بالإضافة إلى Mongoose بمثابة ODM بينهما،
يجب أن تبدأ العمليات التي يتعين تنفيذها من قاعدة البيانات
داخل جهاز التوجيه الذي بنيناه لكل نقطة نهاية REST API.
حتى داخل جهاز التوجيه،
حتى طريقة GET،
PUT أو طريقة POST.
الإجراء المقابل الذي يتعين تنفيذه على قاعدة البيانات سواء كان طلب GET
مما يؤدي إلى تنفيذ طريقة العثور على أطباق أو
طلب POST مما يتسبب
في طريقة إنشاء أطباق ليتم تنفيذها، يجب أن يتم بواسطة خادم Express الخاص بنا مما يؤدي إلى
العملية المقابلة بدأت على قاعدة بيانات MongoDB.
لذلك مع هذا الفهم
لكيفية ترجمة الطلبات إلى عمليات قاعدة بيانات المقابلة،
دعونا ننتقل إلى التدريبين حيث سننظر في التعامل مع
طلب GET و PUT و POST و DELETE القادم إلى /dished /: نقاط النهاية
Dished وأيضًا لتعديل التعليقات الموجودة
في الوثائق الفرعية المرفقة داخل وثيقة الطبق.