Title: Actividad Final: Desarrollo de REST APIs en Node.js con PostgreSQL e integración en React
Course: 2025 - LI - Desarrollo Web del Lado del Cliente 2-1 y 2-2 > Section: 3 - Backend

✅ Actividad Final: Desarrollo de REST APIs en Node.js con PostgreSQL e integración en React

🎯 Objetivo de la actividad

Diseñar y desarrollar seis endpoints RESTful usando Node.js, Express y PostgreSQL, e integrarlos correctamente en un proyecto React, simulando un flujo completo cliente-servidor con persistencia de datos.

📘 Instrucciones generales

1. Configuración del entorno backend (Node.js + PostgreSQL)

a) Dependencias mínimas:
npm install express pg cors body-parser dotenv

b) Base de datos:

• Crear una base de datos en PostgreSQL (local o alojada).

• Crear una tabla principal para los datos que manejarán (ej: productos, usuarios, ubicaciones, etc.).

c) Archivo .env para conectar a la base:

DB_HOST=localhost

DB_PORT=5432

DB_USER=tu_usuario

DB_PASSWORD=tu_contraseña

DB_NAME=nombre_bd

2. Desarrollo de 6 endpoints REST

Cada alumno debe implementar 6 rutas usando Express, con conexión real a la base PostgreSQL.

Ejemplo de rutas sugeridas:

Método | Ruta | Descripción
GET | /api/items | Obtener todos los elementos
GET | /api/items/:id | Obtener un elemento específico
POST | /api/items | Crear un nuevo elemento
PUT | /api/items/:id | Actualizar un elemento
DELETE | /api/items/:id | Eliminar un elemento
GET | /api/stats | Obtener datos agregados (COUNT, AVG, etc.)

 Consideraciones:

• Usar async/await con pg.Pool para consultar la base.

• Separar las rutas en módulos (routes/ y controllers/).

• Validar la conexión antes de hacer consultas.

3. Integración en React

• Desde el frontend en React, deben consumir todos los endpoints.

• Mostrar resultados (ej: lista de productos).

• Crear formularios para crear y editar elementos.

• Incluir mensajes de error o confirmación al enviar datos.

💡 Consejos

• Usa Postman para probar los endpoints antes de integrarlos.

• Usa useEffect y axios en React para consumir APIs.

• Maneja errores del servidor con mensajes claros.

• Usa dotenv y nunca publiques tu contraseña de la base en GitHub.