API Routes
أنشئ واجهات API متكاملة مباشرةً داخل Next.js
10-15 دقيقة
API Routes في Next.js
تتيح لك API Routes في Next.js إنشاء نقاط نهاية API مباشرةً داخل تطبيقك، مما يحوّل Next.js إلى حل متكامل (full-stack).
مقدمة إلى API Routes
المفهوم الأساسي
API Routes هي دوال serverless تُنفَّذ على جانب الخادم. يتحول كل ملف داخل pages/api/ إلى نقطة نهاية API.
pages/
└── api/
├── hello.js → /api/hello
├── users/
│ ├── index.js → /api/users
│ └── [id].js → /api/users/123
└── auth/
├── login.js → /api/auth/login
└── logout.js → /api/auth/logout
أول نقطة نهاية
// pages/api/hello.js
export default function handler(req, res) {
res.status(200).json({
message: 'Hello from Next.js API!',
timestamp: new Date().toISOString()
})
}
الاختبار باستخدام curl:
curl http://localhost:3000/api/hello
التعامل مع طرق HTTP
نقطة نهاية متعددة الطرق
// pages/api/users/index.js
export default function handler(req, res) {
const { method } = req
switch (method) {
case 'GET':
return getUsers(req, res)
case 'POST':
return createUser(req, res)
default:
res.setHeader('Allow', ['GET', 'POST'])
res.status(405).end(`Method ${method} Not Allowed`)
}
}
async function getUsers(req, res) {
try {
// جلب المستخدمين من قاعدة البيانات
const users = await db.user.findMany()
res.status(200).json(users)
} catch (error) {
res.status(500).json({ error: 'Erreur serveur' })
}
}
async function createUser(req, res) {
try {
const { name, email } = req.body
// التحقق من صحة البيانات
if (!name || !email) {
return res.status(400).json({
error: 'Nom et email requis'
})
}
// إنشاء المستخدم
const user = await db.user.create({
data: { name, email }
})
res.status(201).json(user)
} catch (error) {
res.status(500).json({ error: 'Erreur lors de la création' })
}
}
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش