كيفية بناء RESTful API باستخدام Node.js و Express.js الجزء الأول

ك

السلام عليكم

في هذا الشرح بسيط سنتعلم سوياً كيفية عمل RESTful API عن طريق node  و express

الAPI اختصار لـ “Application Programming Interface” وهي عبارة عن واجهة برمجية تبنيها ومن ثم تقوم بعمل implementation لها باي لغة او على اي platform تريده.

ومعنى RESTful API وهي اختصار لـ “Representational state transfer” وسيلة لنقل البيانات بين السيرفر والمستخدم باستخدام افعال HTTP  المعروفة مثل: POST , GET , PUT , DELETE

سنقوم بعمل API بسيطة تقوم بجلب وتخزين بيانات شركات وارقام هواتفها بالاستعانة بـMongoDB و الحزمة الخاصة بها Mongoose.

سافترض انك قمت بتثبيت npm ونواة node

الdependencies او node packages التي سنحتاجها :

  • – express وهي الـframework  المبني على node.js الذي سنقوم باستخدامه
  • – mongoose وهي الـ package الخاصة بالتعامل مع MongoDB 
  • – body-parser وهي الخاصة باستقبال البيانات المرسلة عبر التطبيق
  • – morgan وهي الخاصة بتتبع الrequests و الresponse في تطبيقنا

في البداية ننشئ مجلد للمشروع ونسميه وليكن Company Project

وننتقل بال cmd الى داخله

ومن ثم نشرع في بدا المشروع عن طريق امر :

npm init

ساترك البيانات الاساسية كما هي , يمكنك تغيير ماتريد منها

ونكتب yes او نضغط Enter

نلاحظ بعدها ظهور ملف package.json الذي يحتوي على الاعدادات التي قمنا باختيارها مسبقا

كما ذكرنا سابقا اننا سنحتاج لـ node packages لكي نعمل عليها 

فنقوم بكتابة الامر التالي 

npm install express morgan body-parser mongoose --save

سنلاحظ تغير محتوى ملف package.json بالشكل التالي 

وظهور ملف node_modules الذي يحتوي على ماقد طلبنا تحميله

ننشئ ملف جديد باسم index.js الذي كتبناه في ال entry point او كما اخترت اسمه لكي نعمل عليه

ونضيف فيه هذه الاكواد 

//استدعاء كل الحزم التي سنحتاجها خلال العمل
var express = require('express');
var bodyParser = require('body-parser');
var morgan  = require('morgan');
var mongoose = require('mongoose');

//استحداث التطبيق الخاص بنا من خلال express
var app = express(); 

//رقم البورت الخاص بالاتصال
var PORT = process.env.PORT || 3000;

//لكي ننتبع ال requests و response من  خلال ال command line
app.use(morgan('dev'));

//استخدام bodyParser لكي نستطيع اخد الداتا المرسلة لنا
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

//تشغيل السيرفر على رقم البورت المختار
app.listen(PORT,function(err){
   if(err)console.log(err);
   console.log('connected on PORT '+PORT);
});

شرح لما قمنا به :

اول قمنا باستدعاء الحزم التي قمنا بتحميلها سابقاً لكي نستطيع استخدامها في مشروعنا

قمنا باستحداث التطبيق الخاص بنا app من express الذي استدعيناه

قمنا بتعيين رقم لPORT الاتصال وهو اما يكون process.env.PORT اي يتم تعيينه مسبقاً من قبل اعدادات بيئة العمل المعينة التي تعمل عليها وان لم يكن يتم تعيين قيمته 3000. يمكنك تعيين اي قيمة تشاء

قمنا ايضا باستخدام morgan في مرحلة التطوير لكي نستطيع تتبع الrequests والresponse لها وستظهر على شاشة الcommand line سنراها سوياً

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

بعد ماضبطنا الاعدادات دعونا نجرب ماقمنا بعمله وهل التطبيق يعمل ام لا بتشغيله على PORT قمنا بتحديدها app.listen

وتوجد callback function اذا كان هناك اي مشاكل في الاتصال سيرجعها لنا ويطبعها.

وسيعلمنا انه اتصل على رقم البورت الذي حددناه, دعونا نجرب سويا.

احفظ ماقمنا به وشغل الcommand line واكتب node index.js

رائع! فتطبيقنا يعمل الان

يمكنك التجربة على متصفحك بالذهاب الى

localhost:3000

وستجد على الصفحة

Cannot GET /

فنحن لما نقم باضافة محتوى او اي شئ يمكنه عرضه.

واذا رجعنا لرؤية الcommand line مرة اخرى سنجد بيانات الRequest وماذا حصل وهذا بفضل حزمة Morgn اللي تتبع كل مايحصل.

يتبع في الجزء القادم …….

كيفية بناء RESTful API باستخدام Node.js و Express.js الجزء الثاني

عن الكاتب

أحمد مجدي

Full Stack Software Developer , Geek

أضف تعليقاً

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.