¿Cansado de llevar el inventario de tu negocio en cuadernos o en hojas de Excel que siempre se quedan desactualizadas? En Colombia, cada vez más emprendedores y pequeños negocios están dando el salto hacia la digitalización. Una de las mejores formas de empezar es creando un sistema propio para gestionar tus datos. Hoy vamos a construir el corazón de ese sistema: una API REST.
Sí, suena muy técnico, pero te prometo que es más sencillo de lo que parece. Vamos a usar Node.js, una tecnología super rápida y amigable. Atrévete a seguir esta guía paso a paso y verás cómo en menos de una hora tienes corriendo tu primer servidor.
¿Qué es una API REST y por qué la necesitas?
Imagina que tu base de datos es la cocina de un restaurante y tu aplicación web o móvil es el cliente sentado en la mesa. La API (Interfaz de Programación de Aplicaciones) es el mesero que toma el pedido, va a la cocina, trae la comida y se la sirve al cliente. REST es simplemente un conjunto de reglas sobre cómo ese mesero debe comportarse.
Para tu negocio, tener una API significa que puedes crear una página web, una app móvil o incluso una aplicación de escritorio, y todas pueden conectarse a la misma "cocina" para leer, crear, actualizar o borrar productos de tu inventario.
Preparando el entorno de desarrollo
Antes de empezar a escribir código, necesitamos tener nuestras herramientas listas. Es como preparar la mesa de trabajo antes de cocinar.
- Instalar Node.js: Ve a la página oficial de Node.js y descarga la versión LTS (Soporte a Largo Plazo). Instálala como cualquier otro programa en tu computador.
- Un editor de código: Te recomendamos Visual Studio Code, es gratuito, ligero y excelente para JavaScript.
- Postman: Es una herramienta gratuita que nos permitirá probar nuestra API sin necesidad de tener una interfaz gráfica lista.
Paso 1: Inicializar el proyecto
Abre tu terminal o consola de comandos y crea una nueva carpeta para tu proyecto. Navega hasta ella e inicializa un nuevo proyecto de Node.js.
Escribe los siguientes comandos:
mkdir inventario-api
cd inventario-api
npm init -y
El comando npm init -y creará un archivo llamado package.json que guardará la información de tu proyecto. Ahora, vamos a instalar Express, que es el framework que nos facilitará la vida para crear el servidor:
npm install express
Paso 2: Crear el servidor básico
Abre la carpeta del proyecto en Visual Studio Code y crea un archivo llamado index.js. Aquí es donde vivirá nuestro código. Vamos a escribir las primeras líneas para levantar el servidor:
const express = require('express');
const app = express();
const port = 3000;
// Middleware para poder leer datos en formato JSON
app.use(express.json());
app.listen(port, () => {
console.log(`Servidor corriendo en http://localhost:${port}`);
});
Para probarlo, ve a tu terminal y ejecuta node index.js. Deberías ver el mensaje en la consola indicando que el servidor está corriendo. Presiona Ctrl + C para detenerlo por ahora.
Paso 3: Modelar los datos del inventario
Para mantener este tutorial simple, no vamos a conectar una base de datos real todavía. Usaremos un arreglo (array) en la memoria de nuestro servidor. En la vida real, aquí conectarías una base de datos como PostgreSQL o MongoDB, pero vamos paso a paso.
Añade este código debajo de la configuración del puerto:
let productos = [
{ id: 1, nombre: "Camiseta Camilincanins", precio: 35000, stock: 50 },
{ id: 2, nombre: "Taza Términa", precio: 15000, stock: 20 }
];
Paso 4: Implementar las rutas (CRUD)
CRUD significa Crear, Leer, Actualizar y Borrar (Create, Read, Update, Delete). Vamos a crear estas cuatro rutas para manejar nuestros productos.
1. Leer 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).send('Producto no encontrado');
}
});
4. Borrar un producto (DELETE)
app.delete('/api/productos/:id', (req, res) => {
const id = parseInt(req.params.id);
productos = productos.filter(p => p.id !== id);
res.status(204).send();
});
Guarda el archivo, ejecuta nuevamente node index.js y abre Postman. Prueba hacer una petición GET a http://localhost:3000/api/productos. ¡Verás tus productos listos!
Consejos prácticos para emprendedores y devs
- Manejo de errores: En el mundo real, los usuarios cometerán errores. Asegúrate de validar que los datos que llegan en el
req.bodysean correctos antes de guardarlos. - Seguridad: Si vas a montar esta API en internet, investiga sobre CORS (Intercambio de Recursos de Origen Cruzado) para permitir que solo tus aplicaciones se conecten a ella.
- El siguiente paso: Una vez te sientas cómodo con este código en memoria, el siguiente gran paso es conectar una base de datos real para que tus productos no se borren cuando apagues el servidor.
Conclusión
Digitalizar tu negocio no tiene por qué ser un dolor de cabeza. Con un poco de código y las herramientas correctas, puedes empezar a construir soluciones a la medida de tus necesidades. Crear tu propia API te da la libertad de escalar tu plataforma hacia el futuro, ya sea creando una app móvil para tus vendedores o una página web para tus clientes.
Sabemos que como emprendedor en Colombia, tu tiempo es oro y a veces la tecnología puede parecer un mundo aparte. Si en algún momento sientes que esto es mucha tela o prefieres enfocarte en hacer crecer tu modelo de negocio mientras un equipo experto se encarga del software, en Camilincanins Company estamos listos para echarte una mano. Nos especializamos en software a medida, apps y páginas web que impulsan a los pequeños negocios. ¡Hablemos y construyamos juntos la próxima gran idea!