🚀 RESTful API v1.0

Plataforma de E-commerce Completa y Moderna

API robusta construida con Node.js, TypeScript y MongoDB. Sistema completo de autenticación, gestión de productos, órdenes y pagos simulados.

100% TypeScript
JWT Seguro
REST Architecture
API
POST /protected/products
// Create new product
"title": "Wireless Mouse",
"price": 39.99,
"quantity": 10

✓ 201 Created
Características

Todo lo que necesitas en una API

Una solución completa y moderna para tu plataforma de e-commerce

🔐

Autenticación Completa

Sistema JWT con access y refresh tokens. Verificación de email y recuperación de contraseña.

📦

Gestión de Productos

CRUD completo con búsqueda avanzada, filtros, paginación y control de stock.

🛒

Sistema de Órdenes

Procesamiento de pagos simulados con tarjeta y PayPal. Transacciones atómicas.

❤️

Wishlist

Lista de deseos personalizada para cada usuario con gestión completa.

🔒

Seguridad Robusta

Rate limiting, bcrypt, cookies httpOnly y validación estricta de datos.

📊

Logging & Monitoreo

Winston para logs estructurados y Morgan para tracking de requests HTTP.

Tecnologías Utilizadas

TypeScript Node.js Express MongoDB JWT express-rate-limit Zod Winston Morgan Vitest Docker Swagger

💻 Ejemplos de consumo de la API

GET /protected/products

Obtener lista de productos con paginación

Request

GET /protected/products?page=1&limit=5

Response

{
  "success": true,
  "message": "Products retrieved successfully",
  "data": {
    "products": [
      { "_id": "64f1c2d4b8a1e5f123456789", "title": "Laptop", "price": 1200, "quantity": 10 },
      { "_id": "64f1c2d4b8a1e5f12345678a", "title": "Headphones", "price": 100, "quantity": 50 }
    ]
  }
}
POST /auth/register

Registrar un nuevo usuario

Request

POST /auth/register
{
  "email": "user@example.com",
  "username": "johndoe",
  "password": "Password123!"
}

Response

{
  "success": true,
  "message": "A verification email has been sent"
}
POST /orders

Crear una nueva orden

Request

POST /orders
{
  "items": [
    { "productId": "64f1c2d4b8a1e5f123456789", "title": "Laptop", "price": 1200, "quantity": 1 }
  ],
  "status": "pending",
  "shippingAddress": {
    "street": "123 Main St",
    "city": "New York",
    "zip": "10001"
  }
}

Response

{
  "success": true,
  "message": "Order created successfully",
  "data": {
    "orderId": "64f1c2d4b8a1e5f12345678c",
    "total": 1200,
    "status": "pending"
  }
}

¿Querés probar la API realmente?

Podes hacerlo desde tu navegador o con herramientas como Postman o cURL:

Contáctame

Estoy disponible en estos canales. Hacé clic para contactarme: