Este proyecto es una API REST para un ecommerce, desarrollada en TypeScript con Node.js y Express, utilizando SQL Server como base de datos. Se incluyen endpoints para la gestión de roles y usuarios, con pruebas unitarias e integración con Jest y Supertest. Además, la API está documentada con Swagger.
- Node.js (Runtime de JavaScript)
- TypeScript (Tipado estático)
- Express.js (Framework para APIs)
- SQL Server (Base de datos relacional)
- mssql (Cliente para SQL Server en Node.js)
- Jest (Framework de pruebas unitarias)
- Supertest (Pruebas de integración para APIs REST)
- Swagger (Documentación interactiva de la API)
git clone https://github.com/JamilSec/ts_api_ecommerce.git
cd ts-api-ecommerce
npm install
Crea un archivo .env
en la raíz del proyecto con el siguiente contenido:
DB_SERVER=tu-servidor-sql
DB_NAME=ecommerce_db
DB_USER=tu-usuario
DB_PASSWORD=tu-password
DB_PORT=1433
APP_PORT=3000
Ejecuta el script database.sql
en tu SQL Server para crear la base de datos y sus tablas.
📂 ts_api_ecommerce
├── 📁 src
│ ├── 📁 config # Configuración general y DB
│ ├── 📁 controllers # Controladores de la API
│ ├── 📁 middlewares # Middlewares personalizados
│ ├── 📁 models # Modelos de datos (TypeScript interfaces)
│ ├── 📁 repositories # Acceso a la base de datos
│ ├── 📁 routes # Definición de rutas
│ ├── 📁 services # Lógica de negocio
│ ├── 📁 utils # Utilidades generales
│ ├── index.ts # Punto de entrada de la API
├── 📁 tests # Pruebas unitarias e integración
├── 📄 README.md # Documentación del proyecto
├── 📄 package.json # Dependencias y scripts
├── 📄 tsconfig.json # Configuración de TypeScript
└── 📄 .env # Variables de entorno (ignorado en git)
npm run dev
npm run build
npm start
La API tiene documentación interactiva en Swagger. Después de iniciar el servidor, accede a:
http://localhost:3000/api-docs
npm test
npx jest tests/rol/roleService.test.ts
npx jest tests/integration/roleRoutes.test.ts
npm test -- --coverage
Si deseas contribuir a este proyecto, puedes hacer un fork y enviar un pull request con mejoras.