API Routes
Crie APIs completas diretamente no Next.js
10-15 min
API Routes Next.js
As API Routes do Next.js permitem criar endpoints de API diretamente na sua aplicação, transformando o Next.js em uma solução full-stack completa.
Introdução às API Routes
Conceito básico
As API Routes são funções serverless executadas no lado do servidor. Cada arquivo dentro de pages/api/ se torna um 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
Primeiro 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()
})
}
Teste com curl:
curl http://localhost:3000/api/hello
Gerenciamento dos métodos HTTP
Endpoint com múltiplos 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 {
// Recuperar os usuários do banco de dados
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'
})
}
// Criar o usuário
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' })
}
}
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão