- Identificación de Deuda Técnica.
- Aplicación de Spec-Driven Development (SDD).
- Refactorización progresiva sin romper funcionalidad.
- Asegúrate de tener instalado el SDK de .NET 6 o superior.
- Navega a la carpeta del proyecto:
cd InventarioApi - Ejecuta el comando:
dotnet run
- La API estará disponible en:
http://localhost:5197(revisar consola para puerto exacto).
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /api/productos |
Lista todos los productos |
| GET | /api/productos/{id} |
Obtiene un producto por ID |
| POST | /api/productos |
Crea un nuevo producto |
| PUT | /api/productos/{id} |
Actualiza un producto existente |
| DELETE | /api/productos/{id} |
Elimina un producto |
| POST | /api/productos/{id}/stock |
Ajusta el stock (recibe { "delta": N }) |
Para los fines del ejercicio, se han incluido deliberadamente los siguientes problemas:
- Fat Controllers: Toda la lógica de negocio, orquestación y validación vive directamente en
ProductosController.cs. - God Class (Helper): La clase
InventarioHelper.csmezcla acceso a archivos (I/O), lógica de validación, cálculos y logging. - Acoplamiento Fuerte: No se utiliza Inyección de Dependencias. Las clases se instancian manualmente mediante
new. - Persistencia Precaria: El sistema lee y sobreescribe el archivo
inventario.jsoncompleto en cada operación. - Inconsistencia de Errores: Las respuestas de error no siguen un estándar (algunas son strings, otras objetos JSON, otras excepciones crudas).
- Nomenclatura Mixta (Spanglish): Mezcla desordenada de inglés y español en nombres de variables y métodos (
listaProductos,GetById,isValido). - Manejo de Logging: Escritura síncrona directa a
log.txtsin control de concurrencia ni abstracción.
Material desarrollado para la Sesión 2 - Bloque 4 del curso "IA para Desarrolladores".