مقدمة: لماذا تحتاج REST API بلغة JavaScript في 30 دقيقة؟
\nتطوير الويب الحديث لا يمكن تصوره بدون API (واجهة برمجة التطبيقات). REST (نقل الحالة التمثيلية) هو النمط المعماري الأكثر شيوعًا لإنشاء خدمات الويب. إذا كنت ترغب في إتقان تطوير backend بسرعة أو تشغيل أول خادم لك، فإن JavaScript و Node.js هما الخيار المثالي. في 30 دقيقة، يمكنك إنشاء REST API كامل يعالج الطلبات، ويعيد البيانات بتنسيق JSON، ويعمل مع قاعدة بيانات (في مثالنا، مع مصفوفة بسيطة في الذاكرة).
\nفي هذه المقالة، سنشرح مثالًا عمليًا: سننشئ API لإدارة قائمة المهام (To-Do list). ستتعلم كيفية إعداد الخادم، ومعالجة طلبات GET و POST و PUT و DELETE، بالإضافة إلى إضافة التحقق الأساسي. في نهاية القراءة، سيكون لديك كود جاهز يمكن تشغيله واختباره فورًا.
\n\nالخطوة 1: إعداد المشروع وتثبيت التبعيات
\nقبل كتابة الكود، تحتاج إلى تجهيز البيئة. تأكد من تثبيت Node.js (يمكن تنزيله من الموقع الرسمي). ثم اتبع التعليمات:
\n- \n
- أنشئ مجلدًا جديدًا للمشروع، مثل
rest-api-todo. \n - افتح الطرفية في هذا المجلد ونفذ الأمر
npm init -y- سينشئ هذا ملفpackage.json. \n - قم بتثبيت Express - الإطار الأكثر شيوعًا لـ Node.js:
npm install express. \n - لتسهيل العمل، قم بتثبيت
nodemonكتبعية تطوير:npm install --save-dev nodemon. سيقوم بإعادة تشغيل الخادم تلقائيًا عند تغيير الكود. \n
بعد التثبيت، أضف سكريبت التشغيل في package.json:
"scripts": {\n "start": "node index.js",\n "dev": "nodemon index.js"\n}\n\nالخطوة 2: إنشاء خادم أساسي باستخدام Express
\nالآن سننشئ ملف index.js - سيكون نقطة الدخول لتطبيقنا. فيه سنقوم بإعداد الخادم، وتوصيل middleware للعمل مع JSON، وتحديد أول مسار.
const express = require('express');\nconst app = express();\nconst PORT = 3000;\n\n// Middleware لتحليل JSON\napp.use(express.json());\n\n// مخزن بيانات مؤقت (بدلاً من قاعدة البيانات)\nlet tasks = [\n { id: 1, title: 'تعلم Express', completed: false },\n { id: 2, title: 'كتابة REST API', completed: false }\n];\nlet currentId = 3;\n\n// مسار أساسي للتحقق\napp.get('/', (req, res) => {\n res.send('REST API يعمل! استخدم /api/tasks');\n});\n\n// تشغيل الخادم\napp.listen(PORT, () => {\n console.log(`الخادم يعمل على http://localhost:${PORT}`);\n});\nقم بتشغيل الخادم باستخدام الأمر npm run dev وافتح في المتصفح http://localhost:3000. يجب أن ترى رسالة "REST API يعمل!".
الخطوة 3: تنفيذ عمليات CRUD (GET, POST, PUT, DELETE)
\nالآن الجزء الممتع - سننشئ REST API كامل لإدارة المهام. سنقوم بتنفيذ أربع طرق HTTP رئيسية:
\n\n3.1. GET /api/tasks - الحصول على جميع المهام
\n// الحصول على جميع المهام\napp.get('/api/tasks', (req, res) => {\n res.json(tasks);\n});\n\n3.2. GET /api/tasks/:id - الحصول على مهمة واحدة حسب المعرف
\n// الحصول على مهمة حسب المعرف\napp.get('/api/tasks/:id', (req, res) => {\n const id = parseInt(req.params.id);\n const task = tasks.find(t => t.id === id);\n \n if (!task) {\n return res.status(404).json({ message: 'المهمة غير موجودة' });\n }\n res.json(task);\n});\n\n3.3. POST /api/tasks - إنشاء مهمة جديدة
\n// إنشاء مهمة جديدة\napp.post('/api/tasks', (req, res) => {\n const { title, completed } = req.body;\n \n // التحقق\n if (!title || typeof title !== 'string') {\n return res.status(400).json({ message: 'عنوان المهمة مطلوب ويجب أن يكون نصًا' });\n }\n