API Routes
Créez des APIs complètes directement dans Next.js
10-15 min
API Routes Next.js
Les API Routes de Next.js permettent de créer des endpoints API directement dans votre application, transformant Next.js en solution full-stack complète.
Introduction aux API Routes
Concept de base
Les API Routes sont des fonctions serverless qui s'exécutent côté serveur. Chaque fichier dans pages/api/ devient un endpoint 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
Premier endpoint
// pages/api/hello.js
export default function handler(req, res) {
res.status(200).json({
message: 'Hello from Next.js API!',
timestamp: new Date().toISOString()
})
}
Test avec curl :
curl http://localhost:3000/api/hello
Gestion des méthodes HTTP
Endpoint multi-méthodes
// 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 {
// Récupérer les utilisateurs depuis la base de données
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
// Validation
if (!name || !email) {
return res.status(400).json({
error: 'Nom et email requis'
})
}
// Créer l'utilisateur
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' })
}
}
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion