
- بواسطة x32x01 ||
لو شغال على مشروع Next.js ومحتاج API، غالبًا هتفكر إنك محتاج تبني سيرفر خارجي بـ Express أو أي framework تاني
. لكن الموضوع أسهل بكتير! Next.js فيه ميزة اسمها API Routes بتخليك تعمل API جوه المشروع بتاعك من غير ما تحتاج سيرفر خارجي، وسريعة وكفائتها عالية
.
.
مثال لو عايز تعمل API يجيب بيانات مستخدم:
لو فتحت /api/user في المتصفح، الرد هيكون كده:
أبسط من كده مستحيل 
في المثال دا، بنستقبل بيانات جديدة بالـ POST، ولو حد جرب يبعت Method تانية بيرجعله error
.
مثال:
هنا بنسجل كل Request في الـ console وبعد كده نرجع الرد المناسب حسب الـ Method.
.


إيه هي API Routes؟
ببساطة، API Routes هي صفحات جوه مشروعك بترد على الـ Requests اللي بتيجي لها زي GET أو POST. يعني بدل ما تعمل سيرفر مستقل، تقدر تعمل كل ده جوه مشروع Next.js بسهولة
أول خطوة: إنشاء ملف الـ API
تروح عند مجلدpages/
وتعمل مجلد جديد اسمه api/
. ده المكان اللي هتحط فيه كل الـ API Endpoints بتاعتك.مثال لو عايز تعمل API يجيب بيانات مستخدم:
JavaScript:
// pages/api/user.js
export default function handler(req, res) {
res.status(200).json({ name: 'Ahmed', age: 30 });
}
لو فتحت /api/user في المتصفح، الرد هيكون كده:
Code:
{
"name": "Ahmed",
"age": 30
}

التعامل مع POST Request
تقدر تتعامل مع أي نوع من الـ HTTP Methods. لو عايز تعمل API يقبل بيانات باستخدام POST: JavaScript:
// pages/api/user.js
export default function handler(req, res) {
if (req.method === 'POST') {
const { name, age } = req.body;
res.status(200).json({ message: `استقبلنا بياناتك: ${name}, ${age}` });
} else {
res.status(405).json({ message: 'Method not allowed' });
}
}

الميزات الإضافية للـ API Routes
ممكن تستخدم Middlewares قبل ما ترجع الرد، زي:- التحقق من صلاحيات الشخص اللي بيطلب البيانات (Authentication)
- تسجيل الـ Requests اللي جاية (Logging)
مثال:
JavaScript:
// pages/api/user.js
export default function handler(req, res) {
console.log(`Request Method: ${req.method}`);
if (req.method === 'GET') {
res.status(200).json({ name: 'Ahmed', age: 30 });
} else {
res.status(405).json({ message: 'Method not allowed' });
}
}
ليه تستخدم API Routes في Next.js؟
- مفيش تعقيدات، كل حاجة جوه المشروع
- ممكن تعمل API Calls جوه المشروع بسهولة seamless
- Next.js بتدعم Serverless Functions، ده معناه سرعة وأداء أفضل

التعديل الأخير: