السبت - الخميس: 10:00 ص - 10:00 م

بناء واجهات برمجة تطبيقات RESTful مع Node.js و Express

تعلم بناء واجهات برمجة تطبيقات RESTful فعالة وقابلة للتطوير مع Node.js و Express.

بناء واجهات برمجة تطبيقات RESTful مع Node.js و Express

ما هي واجهات برمجة التطبيقات (APIs)؟

واجهات برمجة التطبيقات (Application Programming Interfaces) هي الجسر الذي يربط بين تطبيقات مختلفة، مما يسمح لها بالتواصل وتبادل البيانات. RESTful APIs هي النوع الأكثر شيوعاً والأسهل في الفهم والاستخدام.

لماذا تحتاج APIs؟

🔗 ربط التطبيقات

ربط تطبيقك مع خدمات خارجية مثل الدفع، الخرائط، أو وسائل التواصل

📱 تطبيقات الجوال

تطبيقات الجوال تحتاج API للحصول على البيانات من الخادم

🌐 مواقع الويب

جعل موقعك تفاعلياً من خلال جلب البيانات ديناميكياً

🤖 التكامل

ربط أنظمة مختلفة في شركتك أو مع شركاء خارجيين

مبادئ REST:

📊 Stateless

كل طلب يجب أن يحتوي على جميع المعلومات اللازمة

🔗 Uniform Interface

واجهة موحدة وثابتة لجميع العمليات

📚 Resource-Based

البيانات تُعامل كموارد (Resources) يمكن الوصول إليها

🌐 Client-Server

فصل واضح بين العميل والخادم

أنواع طلبات HTTP:

GET

جلب البيانات (قراءة)

GET /api/users

POST

إنشاء بيانات جديدة

POST /api/users

PUT

تحديث بيانات موجودة (كاملة)

PUT /api/users/123

PATCH

تحديث جزئي للبيانات

PATCH /api/users/123

DELETE

حذف البيانات

DELETE /api/users/123

بناء API بسيط مع Node.js و Express:

1. إعداد المشروع

npm init -y
npm install express mongoose cors
npm install -D nodemon

2. إنشاء الخادم الأساسي

const express = require('express');
const cors = require('cors');
const app = express();

app.use(cors());
app.use(express.json());

app.listen(3000, () => {
  console.log('الخادم يعمل على المنفذ 3000');
});

3. نموذج البيانات

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  name: String,
  email: String,
  age: Number
});

const User = mongoose.model('User', userSchema);

4. مسارات API

// جلب جميع المستخدمين
app.get('/api/users', async (req, res) => {
  try {
    const users = await User.find();
    res.json(users);
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// إنشاء مستخدم جديد
app.post('/api/users', async (req, res) => {
  try {
    const user = new User(req.body);
    await user.save();
    res.status(201).json(user);
  } catch (error) {
    res.status(400).json({ error: error.message });
  }
});

// جلب مستخدم محدد
app.get('/api/users/:id', async (req, res) => {
  try {
    const user = await User.findById(req.params.id);
    if (!user) return res.status(404).json({ error: 'المستخدم غير موجود' });
    res.json(user);
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

أفضل الممارسات لبناء APIs:

📝 تسمية واضحة

  • استخدم أسماء وصفية للمسارات
  • استخدم HTTP methods بشكل صحيح
  • تجنب الأفعال في أسماء المسارات

🔒 الأمان

  • استخدم HTTPS دائماً
  • طبق المصادقة (Authentication)
  • تحقق من صحة البيانات
  • حدد معدل الطلبات (Rate Limiting)

📊 الاستجابة

  • استخدم رموز الحالة الصحيحة
  • أرسل رسائل خطأ واضحة
  • استخدم Pagination للبيانات الكبيرة
  • أضف معلومات مفيدة في Headers

أدوات مفيدة لاختبار APIs:

  • Postman - أداة شاملة لاختبار APIs
  • Insomnia - بديل سهل لـ Postman
  • curl - أداة سطر الأوامر
  • Thunder Client - إضافة VS Code

مثال على استخدام API من العميل:

// جلب البيانات
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('خطأ:', error));

// إرسال بيانات جديدة
fetch('/api/users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'أحمد محمد',
    email: '[email protected]',
    age: 25
  })
})
.then(response => response.json())
.then(data => console.log('تم إنشاء المستخدم:', data));

APIs هي أساس التطبيقات الحديثة. ابدأ ببناء أول API لك اليوم!

تعلم بناء APIs معنا

تواصل معنا

عبر الماسنجر او الهاتف