في المحاضرة السابقة،
تعلمنا عن REST API.
لقد رأيت كيف
تدعم نقاط نهاية REST API طريقة لتطبيق العميل ليتمكن إما من استرداد
البيانات من الخادم أو تحميل البيانات إلى الخادم باستخدام عمليات HTTP المختلفة.
في هذه المحاضرة والتمرين الذي يتبع هذه المحاضرة،
سننظر تحديدًا في نوع الدعم الذي
يدعمه Express لتصميم وتنفيذ خادم يستند إلى REST API. على
وجه الخصوص، سننظر أيضًا في جهاز التوجيه Express،
وكيف يمكننا من تقسيم تطبيقنا
ثم تنظيمه إلى تطبيقات متعددة تشبه Express صغيرة،
والتي تجمع معًا لتشكيل تطبيق Express،
وتحديدًا عندما نتعامل مع مختلف REST API و أجزاء.
لذلك لتلخيص، في المحاضرة السابقة،
درسنا REST بالتفصيل.
نظرنا أيضًا في كيفية تحديد كل نقطة نهاية بواسطة URI،
وكيف يمكننا تحديد العمليات المختلفة التي يجب القيام بها على
كل نقطة نهاية باستخدام فعل HTTP المناسب أو
GET أو PUT أو POST أو DELETE.
الآن في هذه المحاضرة،
سننظر في كيفية دعم Express لتطوير خادم REST API.
سنلقي نظرة على دعم Express لمسائل مختلفة مثل app.all و
app.get و put و post و الحذف،
وكيف يمكن استخدام هذه الطرق لإنشاء خادم REST API.
ضمن Express، يمكن تعريف مجموعات التطبيقات المختلفة باستخدام التطبيق.
و الأساليب المختلفة.
لذلك، يحدد app.all العملية التي يجب القيام بها على جميع الأفعال المختلفة،
على، في، وجزء.
على سبيل المثال، في هذا المثال،
نرى أن نقطة النهاية يتم تعريفها بواسطة/أطباق،
وبالتالي
سيتم تطبيق app.all، كل ما هو محدد في الدالة التي يتم تقديمها لـ app.all، على جميع الطلبات الواردة.
يحدد app.get ما يجب القيام به لطلبات GET، وفي
المقابل، لطلبات POST و
PUT و DELETE التي يتم إرسالها إلى نقطة النهاية /dayses،
كما هو موضح في هذا المثال.
يدعم Express أيضًا تحديد نقاط النهاية بالمعلمات.
على سبيل المثال، يمكنك تحديد معرف طبق معين إذا كنت ترغب في ذلك،
ومن ثم السماح بإجراء العملية
لنقطة النهاية المحددة التي تشير إلى ذلك الطبق المحدد مع معرف طبق معين.
لذلك في هذه الحالة، يتم
تحديد معرف الطبق نفسه كمعلمة والنمط المستخدم لذلك هو،
كما ترون في هذا المثال،
/أطباق/: ثم يمكنك تحديد المعلمة هنا.
لجعل من السهل بالنسبة لنا أن نفهم،
سميت المعلمة كما ديشيد في هناك.
يمكنك استخدام أي اسم معلمة تختاره، ولكن مرة أخرى، فإن
استخدام اسم ذي معنى لمعلمة يجعل من الأسهل فهم الشفرة.
لذلك في هذا المثال، فإن
:
Dishid يعني أنه إذا قمنا بإصدار طلب إلى نقطة نهاية، على سبيل المثال، /dished /23،
فإن المعلمة DisHid تمكننا من استخراج هذا الرقم 23 حتى
نتمكن من العمل على الطبق رقم 23 داخل
الوظيفة المحددة داخل هذه الطريقة هنا.
حتى في هناك، المعلمة، المعلمة
DisHid نفسها يمكن الحصول عليها باستخدام كائن الطلب الذي خاصية
params التي تدعمها وخاصية
params تدعم جميع معلمات الطلب الواردة،
و DisHid، على وجه الخصوص،
هي واحدة من معلمات الطلب التي يمكن الوصول إليها،
كما هو موضح في التعليمات البرمجية هنا.
عند إرسال طلب PUT أو POST من العميل إلى الخادم،
غالبًا ما تقوم بإرفاق البيانات الموجودة في نص الرسالة التي يتم إرسالها إلى الخادم.
الآن، مما يعني أننا بحاجة إلى طريقة
لاستخراج المعلومات من نص الرسالة.
لذلك هذا هو المكان الذي تكون فيه الوسيطة محلل الجسم لـ Express مفيدة للغاية.
وبالتالي فإن محلل الجسم تمكننا من تحليل المعلومات من نص الرسالة.
لاستخدام محلل الجسم، كما نتوقع،
سنقوم بتثبيت وحدة عقدة محلل الجسم،
ومن ثم نطلب ذلك داخل تطبيق Express الخاص بنا، ومن
ثم تحديد app.use (BodyParser).
وإذا كان الجسم يحتوي على بيانات بتنسيق JSON،
فيمكنك أن تقول bodyParser.Json،
مما يعني أن هذا سيؤدي إلى تحليل البيانات فقط
بتنسيق JSON الموجود في نص رسالة الطلب هذه. على
وجه الخصوص، في التمرين،
سنقوم بتحليل البيانات الواردة التي يتم إرسالها في شكل سلسلة JSON.
محلل النص الأساسي، كما تتوقع،
يوزع نص الرسالة ويملأ الخاصية req.body.
لذلك، بناء على الطلب،
ستحتوي خاصية الجسم على كل ما يتم تحليله من
نص رسالة الطلب بواسطة محلل الجسم.
إذا كنت تقوم بتطبيق تطبيق Express
الذي يدعم نقاط النهاية متعددة لـ REST API،
فمن المنطقي تقسيم الشفرة إلى
وحدات متعددة ثم الاستفادة منها لإنشاء تطبيق Express الشامل.
لذلك هذا حيث يأتي جهاز التوجيه Express لمساعدتنا.
يحدد جهاز التوجيه Express العديد من تطبيقات Express،
وضمن هذا العديد من تطبيقات Express
، يمكنك، على سبيل المثال،
التعامل مع نقطة نهاية REST API معينة بمزيد من التفصيل،
أو نمط معين من نقطة نهاية REST API بمزيد من التفصيل.
لذلك، على سبيل المثال، يمكننا تعريف dishRouter كما express.Router،
ومن ثم يمكن dishRouter التعامل مع نقاط النهاية.
لذلك عند التعبير عن شيء ما كما Express.Router،
فإنه يدعم نقطة نهاية الطريق.
أحد أسباب استخدام جهاز التوجيه Express،
كما تدرك،
هو أنه إذا استخدمنا
أساليب GET و PUT و POST و DELETE القياسية،
لكل واحدة من هذه الطرق،
تحتاج إلى تحديد نقاط نهاية REST API بشكل صريح.
ميزة واحدة لاستخدام جهاز التوجيه Express هو أنه إذا
قلت router.Route ثم حدد نقطة النهاية،
سيتم تطبيق نقطة النهاية هذه على جميع الطرق وجميع الأساليب المختلفة GET و PUT و POST
و DELETE المتعلقة بالأفعال يمكن أن تكون بالسلاسل
معا في المسار في تعريف التعليمات البرمجية للحصول على طلبنا.
سنلقي نظرة على مزيد من التفاصيل حول هذا الموضوع في التمرين الذي يتبع هذه المحاضرة.
مع هذا الفهم السريع لكيفية دعم Express لنقطة نهاية REST API،
دعنا ننتقل إلى التمرين حيث سنقوم ببناء
دعمهم لنقطة النهاية REST API.
كجزء من المهمة الأولى،
ستقوم بتوسيع
تطبيق Express هذا لدعم نقاط النهاية الإضافية لـ REST API،
بما في ذلك /الترقيات و /القادة.
إذا كنت قد أخذت الدورات السابقة في التخصص،
فستبدأ على الفور في معرفة سبب دعمنا
لجميع نقاط نهاية REST API المختلفة هذه على جانب الخادم الآخر.