馃挰 Comentarios con API Routes

Next.js Comentarios

馃挰 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:

  1. 馃洜️ ¿Qu茅 son las API Routes?
  2. ⚡ Crear una API Route para guardar comentarios
  3. 馃搵 Crear un formulario de comentarios en el front-end
  4. 馃攧 Conectar el formulario con la API
  5. 馃挕 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.

馃挕 Consejo: Practica primero con la API local y luego integra una base de datos real para guardar los comentarios de los usuarios.

Publicar un comentario

0 Comentarios