¿Cuántas veces has llegado al final del día en tu tienda o emprendimiento y te has dado cuenta de que las cuentas no cuadran? En Colombia, muchas pequeñas empresas y emprendedores aún dependen de cuadernos o hojas de Excel para manejar su inventario. Si bien es un comienzo, la verdad es que limita el crecimiento. Hoy te voy a mostrar cómo dar el primer gran paso hacia la digitalización de tu negocio creando una API REST sencilla con Node.js y Express.
¿Qué es una API REST y por qué la necesitas?
Para no enrollarnos mucho, una API (Interfaz de Programación de Aplicaciones) es como un mesero en un restaurante: toma tu pedido, va a la cocina (el servidor o base de datos) y te trae la comida (los datos). REST es simplemente un conjunto de reglas para que ese "mesero" trabaje de forma ordenada usando el protocolo HTTP.
Si quieres que tu app móvil, tu página web o incluso un software de escritorio puedan consultar, crear, editar o eliminar productos de tu inventario, necesitas una API REST en el medio. Es el corazón de cualquier sistema moderno.
Preparando el entorno de desarrollo
Antes de tirar líneas de código, necesitamos tener las herramientas listas. Asegúrate de tener instalado lo siguiente en tu computador:
- Node.js: Descárgalo desde su página oficial. Te recomiendo la versión LTS (Long Term Support).
- Un editor de código: Visual Studio Code es el rey aquí, es gratis y súper completo.
- Postman o Insomnia: Son aplicaciones para probar que tu API funcione correctamente sin necesidad de hacer una interfaz gráfica todavía.
Abre tu terminal (o línea de comandos) y vamos a empezar a armar el proyecto.
Paso 1: Inicializar el proyecto
Crea una carpeta en tu computador para tu proyecto (por ejemplo, inventario-api), entra a ella desde la terminal y ejecuta el siguiente comando para iniciar un proyecto de Node.js:
npm init -y
Esto creará un archivo package.json básico. Ahora, vamos a instalar Express, que es el framework que nos facilitará la vida para crear los endpoints (las rutas de nuestra API):
npm install express
Para que no tengamos que reiniciar el servidor cada vez que guardemos un cambio, instalemos una herramienta de desarrollo llamada Nodemon:
npm install --save-dev nodemon
Paso 2: Crear el servidor básico
Crea un archivo llamado index.js en la raíz de tu carpeta. Aquí escribiremos el código para levantar nuestro servidor. Copia y pega lo siguiente:
const express = require('express');
const app = express();
const PORT = 3000;
// Middleware para poder leer JSON en las peticiones
app.use(express.json());
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
});
Para ejecutarlo, ve a tu archivo package.json y en la sección de scripts agrega: "start": "nodemon index.js". Luego, en la terminal, escribe npm start. Si todo sale bien, verás el mensaje en la consola.
Paso 3: Definir los datos y las rutas (Endpoints)
Para mantener este tutorial práctico y sencillo, no vamos a conectar una base de datos real todavía. Usaremos un arreglo en memoria. En tu archivo index.js, debajo de la configuración de Express, agrega un arreglo de productos:
let productos = [
{ id: 1, nombre: 'Camiseta Camilincanins', precio: 35000, stock: 50 },
{ id: 2, nombre: 'Taza térmica', precio: 25000, stock: 20 }
];
Ahora viene lo chévere: crear las rutas para interactuar con estos datos. Vamos a implementar las cuatro operaciones básicas (CRUD: Crear, Leer, Actualizar, Eliminar).
1. Obtener todos los productos (GET)
app.get('/api/productos', (req, res) => {
res.json(productos);
});
2. Crear un nuevo producto (POST)
app.post('/api/productos', (req, res) => {
const nuevoProducto = {
id: productos.length + 1,
nombre: req.body.nombre,
precio: req.body.precio,
stock: req.body.stock
};
productos.push(nuevoProducto);
res.status(201).json(nuevoProducto);
});
3. Actualizar un producto (PUT)
app.put('/api/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
const index = productos.findIndex(p => p.id === id);
if (index !== -1) {
productos[index] = { ...productos[index], ...req.body };
res.json(productos[index]);
} else {
res.status(404).json({ mensaje: 'Producto no encontrado, parce' });
}
});
4. Eliminar un producto (DELETE)
app.delete('/api/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
productos = productos.filter(p => p.id !== id);
res.json({ mensaje: 'Producto eliminado correctamente' });
});
Probando nuestra API
Ahora que tenemos el código, vamos a probarlo. Abre Postman o Insomnia y haz lo siguiente:
- Para ver los productos, haz una petición GET a
http://localhost:3000/api/productos. - Para crear uno, haz una petición POST a la misma URL, ve a la pestaña "Body", selecciona "JSON" y envía:
{"nombre": "Gorra", "precio": 40000, "stock": 15}. - Para actualizar, haz un PUT a
http://localhost:3000/api/productos/1cambiando, por ejemplo, el precio. - Para eliminar, un DELETE a
http://localhost:3000/api/productos/2.
Si todo responde como esperabas, ¡felicidades! Tienes una API funcional hecha por ti mismo.
Consejos prácticos para llevar a producción
Este es un gran avance, pero antes de salir a vender tu software al mundo, ten en cuenta estas recomendaciones:
- Conecta una base de datos real: Un arreglo en memoria se borra si el servidor se reinicia. Te recomiendo usar PostgreSQL o MongoDB. Ambos tienen planes gratuitos excelentes para empezar.
- Valida los datos: Asegúrate de que los usuarios no envíen datos vacíos o con formato incorrecto. Puedes usar librerías como
joioexpress-validator. - Despliegue seguro: Cuando subas tu API a internet, usa servicios como AWS, DigitalOcean o Heroku. No olvides usar variables de entorno (con
dotenv) para proteger tus contraseñas y puertos.
Conclusión
Digitalizar tu negocio ya no es un lujo, es una necesidad para competir en el mercado colombiano actual. Crear tu propia API te da el control total sobre cómo tus aplicaciones comunican y gestionan la información vital de tu empresa. Con un poco de práctica, podrás escalar este pequeño inventario a un sistema completo de facturación y ventas.
Sin embargo, sabemos que como emprendedor tu tiempo es oro y quizás prefieras enfocarte en lo que mejor sabes hacer: vender y hacer crecer tu negocio. Si en algún momento sientes que este mundo del código es muy complejo o necesitas llevar tu idea al siguiente nivel con apps móviles, software a medida o incluso realidad virtual, en Camilincanins Company estamos listos para echarte una mano. Cuéntanos tu idea y construyamos juntos el software que tu negocio necesita. ¡Hasta la próxima, parcero!