تطوير واجهات برمجية تطبيقات (APIs) باستخدام Node.js وExpress.js الدرس السادس
في هذا الدرس، سنتعلم كيفية تطوير واجهات برمجية تطبيقات (APIs) باستخدام Node.js وExpress.js، وهي أدوات قوية لإنشاء تطبيقات ويب متكاملة وسريعة.
1. مقدمة عن Node.js وExpress.js
1.1. ما هو Node.js؟
Node.js هو بيئة تشغيل تعتمد على محرك V8 من Google Chrome، تتيح لك تشغيل JavaScript على الخادم. يُستخدم Node.js لبناء تطبيقات ويب سريعة وقابلة للتوسع.
1.2. ما هو Express.js؟
Express.js هو إطار عمل لتطبيقات الويب مبني على Node.js، يبسّط عملية بناء واجهات برمجية للتطبيقات (APIs) وتطبيقات الويب.
2. تطوير واجهات برمجية إعداد بيئة العمل
2.1. تثبيت Node.js وnpm
إذا لم يكن لديك Node.js وnpm مثبتين على جهازك، يمكنك تحميلهما وتثبيتهما من موقع Node.js الرسمي.
2.2. إنشاء مشروع جديد
بعد تثبيت Node.js، قم بإنشاء مجلد جديد لمشروعك وانتقل إليه عبر سطر الأوامر.
mkdir my-api
cd my-api
2.3. تهيئة مشروع Node.js
قم بتهيئة مشروع Node.js باستخدام npm.
npm init -y
2.4. تثبيت Express.js
قم بتثبيت Express.js باستخدام npm.
npm install express
3. إنشاء خادم Express.js
3.1. إعداد الخادم الأساسي
في مجلد المشروع، أنشئ ملفًا جديدًا باسم index.js
وأضف الكود التالي لإنشاء خادم Express.js بسيط.
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('مرحبًا بك في واجهة برمجية تطبيقات (API) باستخدام Express.js!');
});
app.listen(port, () => {
console.log(`خادم Express.js يعمل على http://localhost:${port}`);
});
3.2. تشغيل الخادم
قم بتشغيل الخادم باستخدام الأمر التالي.
node index.js
يمكنك الآن الوصول إلى واجهة البرمجية على http://localhost:3000
.
4. إنشاء مسارات (Routes) في Express.js
4.1. تعريف مسارات متعددة
يمكنك تعريف مسارات متعددة للتعامل مع طلبات HTTP المختلفة.
// index.js
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('مرحبًا بك في واجهة برمجية تطبيقات (API) باستخدام Express.js!');
});
app.get('/users', (req, res) => {
res.json([{ id: 1, name: 'User One' }, { id: 2, name: 'User Two' }]);
});
app.post('/users', (req, res) => {
res.send('تم إنشاء مستخدم جديد');
});
app.listen(port, () => {
console.log(`خادم Express.js يعمل على http://localhost:${port}`);
});
5. التعامل مع البيانات في Express.js
5.1. استخدام وسيط Body Parser
لاستقبال ومعالجة البيانات المرسلة مع الطلبات POST، نحتاج إلى استخدام Body Parser.
npm install body-parser
ثم نضيف Body Parser إلى التطبيق.
// index.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
app.use(bodyParser.json());
app.get('/', (req, res) => {
res.send('مرحبًا بك في واجهة برمجية تطبيقات (API) باستخدام Express.js!');
});
app.get('/users', (req, res) => {
res.json([{ id: 1, name: 'User One' }, { id: 2, name: 'User Two' }]);
});
app.post('/users', (req, res) => {
const newUser = req.body;
res.json({ message: 'تم إنشاء مستخدم جديد', user: newUser });
});
app.listen(port, () => {
console.log(`خادم Express.js يعمل على http://localhost:${port}`);
});
6. هيكلة المشروع
6.1. تنظيم الملفات
من الأفضل تنظيم ملفات المشروع بإنشاء مجلدات فرعية للمسارات والنماذج والمتحكمات. إليك هيكل مشروع مقترح:
my-api/
│
├── index.js
├── routes/
│ ├── users.js
├── controllers/
│ ├── userController.js
└── models/
├── userModel.js
6.2. إنشاء نموذج (Model)
يمكنك إنشاء نموذج مستخدم بسيط في ملف models/userModel.js
.
// models/userModel.js
const users = [];
module.exports = users;
6.3. إنشاء متحكم (Controller)
قم بإنشاء متحكم للتعامل مع العمليات المختلفة في ملف controllers/userController.js
.
// controllers/userController.js
const users = require('../models/userModel');
exports.getAllUsers = (req, res) => {
res.json(users);
};
exports.createUser = (req, res) => {
const newUser = req.body;
users.push(newUser);
res.json({ message: 'تم إنشاء مستخدم جديد', user: newUser });
};
6.4. إنشاء مسارات (Routes)
قم بإنشاء مسارات المستخدمين في ملف routes/users.js
.
// routes/users.js
const express = require('express');
const router = express.Router();
const userController = require('../controllers/userController');
router.get('/', userController.getAllUsers);
router.post('/', userController.createUser);
module.exports = router;
6.5. استيراد المسارات في الخادم الأساسي
أخيرًا، نقوم باستيراد واستخدام مسارات المستخدمين في index.js
.
// index.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
const userRoutes = require('./routes/users');
app.use(bodyParser.json());
app.use('/users', userRoutes);
app.get('/', (req, res) => {
res.send('مرحبًا بك في واجهة برمجية تطبيقات (API) باستخدام Express.js!');
});
app.listen(port, () => {
console.log(`خادم Express.js يعمل على http://localhost:${port}`);
});
في هذا الدرس، تعلمنا كيفية إنشاء واجهة برمجية للتطبيقات (API) باستخدام Node.js وExpress.js. تعلمنا أيضًا كيفية تنظيم الملفات في المشروع والتعامل مع البيانات باستخدام Body Parser. بإتقان هذه المهارات، يمكنك بناء واجهات برمجية قوية ومرنة لتطبيقاتك.