💬 Comentarios con API Routes
Aprende a crear un sistema de comentarios para tu blog usando las API Routes de Next.js.
📌 Índice de esta entrada:
- 🛠️ ¿Qué son las API Routes?
- ⚡ Crear una API Route para guardar comentarios
- 📋 Crear un formulario de comentarios en el front-end
- 🔄 Conectar el formulario con la API
- 💡 Consejos y buenas prácticas
🛠️ ¿Qué son las API Routes?
Las API Routes en Next.js te permiten crear endpoints de servidor directamente en tu proyecto. Se pueden usar para recibir datos de formularios, guardar información en una base de datos, o comunicarte con servicios externos.
Las rutas se crean dentro de la carpeta pages/api/ y funcionan como cualquier endpoint REST.
⚡ Crear una API Route para guardar comentarios
Vamos a crear un archivo pages/api/comments.js para recibir los comentarios:
export default function handler(req, res) {
if (req.method === 'POST') {
const { name, message } = req.body;
// Aquí normalmente guardarías los datos en una base de datos
console.log('Nuevo comentario:', name, message);
res.status(200).json({ status: 'ok', message: 'Comentario recibido' });
} else {
res.status(405).json({ error: 'Método no permitido' });
}
}
Esta API recibe comentarios mediante un POST y responde con un mensaje de éxito.
📋 Crear un formulario de comentarios
En tu página de post, agrega un formulario para que los usuarios puedan enviar comentarios:
import { useState } from 'react';
export default function CommentForm() {
const [name, setName] = useState('');
const [message, setMessage] = useState('');
const [status, setStatus] = useState('');
const handleSubmit = async (e) => {
e.preventDefault();
setStatus('Enviando...');
const res = await fetch('/api/comments', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, message }),
});
const data = await res.json();
setStatus(data.message);
setName('');
setMessage('');
};
return (
<form onSubmit={handleSubmit}>
<input
type="text"
placeholder="Tu nombre"
value={name}
onChange={(e) => setName(e.target.value)}
required
/>
<br />
<textarea
placeholder="Tu comentario"
value={message}
onChange={(e) => setMessage(e.target.value)}
required
/>
<br />
<button type="submit">Enviar</button>
<p>{status}</p>
</form>
);
}
🔄 Conectar el formulario con la API
El formulario envía los datos al endpoint /api/comments usando fetch.
Cuando el servidor recibe los datos, devuelve un mensaje que se muestra en el formulario.
Así puedes probar tu API localmente ejecutando npm run dev y enviando comentarios desde el formulario.
💡 Consejos y buenas prácticas
- Valida siempre los datos del formulario antes de enviarlos.
- Usa una base de datos real como MongoDB, Firebase o PostgreSQL para guardar comentarios.
- Evita exponer datos sensibles en la API.
- Agrega protección contra spam si tu blog estará en producción.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias