Este proyecto es una API desarrollada en TypeScript utilizando Node.js, Express y MongoDB. La API permite gestionar productos, incluyendo operaciones CRUD (Crear, Leer, Actualizar y Eliminar).
- CRUD de Productos: Permite crear, obtener, actualizar y eliminar productos.
- Validación de Datos: Uso de Mongoose para validar los datos antes de almacenarlos en la base de datos.
- Reglas de Negocio: Implementación de reglas como ajustes automáticos en los precios según ciertas condiciones.
- Estructura Modular: Separación de responsabilidades en controladores, servicios y modelos.
Antes de ejecutar este proyecto, asegúrate de tener instalado lo siguiente:
-
Clona este repositorio:
git clone https://github.com/tu-usuario/API-TS.git cd API-TS -
Instala las dependencias:
npm install
-
Configura las variables de entorno: Crea un archivo
.enven la raíz del proyecto con el siguiente contenido:MONGO_URI=mongodb://localhost:27017/api-ts PORT=3000
Para iniciar el servidor en modo desarrollo con recarga automática:
npm run devCompila el proyecto y luego inicia el servidor:
npm run build
npm start- GET /api/products: Obtiene todos los productos.
- GET /api/products/:id: Obtiene un producto por su ID.
- POST /api/products: Crea un nuevo producto.
- PUT /api/products/:id: Actualiza un producto existente.
- DELETE /api/products/:id: Elimina un producto.
API-TS/
├── controllers/ # Controladores que manejan las solicitudes HTTP
├── models/ # Modelos de Mongoose para la base de datos
├── services/ # Lógica de negocio y conexión con los modelos
├── routes/ # Definición de las rutas de la API
├── .env # Variables de entorno
├── package.json # Dependencias y scripts del proyecto
└── README.md # Documentación del proyecto
Si deseas contribuir a este proyecto, por favor sigue estos pasos:
- Haz un fork del repositorio.
- Crea una rama para tu funcionalidad (
git checkout -b feature/nueva-funcionalidad). - Realiza tus cambios y haz un commit (
git commit -m 'Agrega nueva funcionalidad'). - Haz un push a tu rama (
git push origin feature/nueva-funcionalidad). - Abre un Pull Request.