
Tasks API — REST API.
API REST construida desde cero para gestionar tareas. Implementa un CRUD completo con Node.js, Express y MySQL corriendo en Docker, aplicando separación de responsabilidades, variables de entorno y prevención de SQL Injection.
¿Por qué este proyecto?
Quería entender cómo funciona un backend real, no solo seguir un tutorial. Así que construí esta API desde cero: eligiendo las herramientas, tomando decisiones de estructura y resolviendo los errores que aparecían en el camino.
¿Qué construí?
Una API REST completa para gestionar tareas. Permite crear, consultar, editar y eliminar tareas a través de cinco endpoints, con validación de datos y manejo de errores en cada uno.
Decisiones técnicas
Usé Docker para la base de datos en lugar de instalar MySQL directamente. Es la forma en que se trabaja en equipos reales y me permitió entender cómo se aíslan los entornos de desarrollo.
Separé el código en rutas, controllers y conexión a la base de datos de forma intencional. Cada archivo tiene una única responsabilidad, lo que hace que el proyecto sea fácil de entender y de escalar.
Las queries usan parámetros con ? en lugar de concatenar strings,
lo que previene ataques de SQL Injection. Las contraseñas y configuración
sensible viven en .env y nunca se suben al repositorio.
Lo que aprendí
- Cómo funciona el ciclo completo de un request HTTP: llega al servidor, pasa por un middleware, entra a una ruta, ejecuta lógica en el controller, consulta la base de datos y devuelve una respuesta.
- Por qué se usan pools de conexiones en lugar de conexiones simples.
- Cómo manejar errores de forma que el servidor no explote ante cualquier falla inesperada.
- La diferencia entre un error 400, 404 y 500, y cuándo usar cada uno.
Stack utilizado
Node.js · Express · MySQL 8 · Docker · dotenv · nodemon
