Saltar al contenido
Volver a proyectos

Gestión de Productos

El backend que consumía un equipo de frontend en Angular, con cambios de esquema versionados en lugar de automáticos que pueden perder datos.

Resultado

1

equipo externo trabajando sobre esta API

Documentada

para que otro equipo avance sin preguntarme

Cero

riesgo de perder datos al actualizar el sistema

Restricciones

  • Migraciones de TypeORM, nunca synchronize. Un esquema que se altera solo al arrancar es una pérdida de datos esperando el momento.
  • El consumidor es un equipo ajeno, así que la documentación Swagger es parte del entregable y no un extra.
  • Partió de un fork, no de un repositorio en blanco.

API REST con autenticación JWT, categorías, productos con imágenes, precio y stock, búsqueda y favoritos. Construida en NestJS con arquitectura por capas sobre PostgreSQL alojado en Supabase.

Es mi único proyecto en NestJS y el único donde el consumidor fue otro equipo: el frontend lo desarrollaba gente que trabajaba en Angular, en paralelo. Eso cambia qué importa. La documentación interactiva en Swagger deja de ser un adorno y pasa a ser la interfaz real del entregable, porque es lo que el otro equipo lee cuando yo no estoy disponible para explicar.

La decisión técnica que más discutí conmigo mismo fue usar migraciones en lugar de synchronize. Sincronizar es más cómodo los primeros días y una fuente de pérdida de datos a partir del primer cambio de entidad contra una base con contenido.

Partió de un fork, no de cero, y conviene decirlo.