API Routes
Crea APIs completas directamente en Next.js
10-15 min
API Routes de Next.js
Las API Routes de Next.js permiten crear endpoints de API directamente en tu aplicación, convirtiendo Next.js en una solución full-stack completa.
Introducción a las API Routes
Concepto básico
Las API Routes son funciones serverless que se ejecutan en el lado del servidor. Cada archivo dentro de pages/api/ se convierte en un endpoint de 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
Primer 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()
})
}
Prueba con curl:
curl http://localhost:3000/api/hello
Gestión de los métodos HTTP
Endpoint con varios métodos
// 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 {
// Obtener los usuarios desde la base de datos
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
// Validación
if (!name || !email) {
return res.status(400).json({
error: 'Nom et email requis'
})
}
// Crear el usuario
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' })
}
}
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión