Cómo crear tu primera API REST con Node.js para gestionar el inventario de tu negocio

Seguramente te ha pasado: llevas el inventario de tu negocio en un Excel que se rompe cada dos por tres, o anotas las ventas en un cuaderno que termina perdido. Si tienes una tiendita de barrio, una panadería en Envigado o una startup tecnológica en Bogotá, la gestión de tu inventario es el corazón de tu operación. Hoy en día, no necesitas gastar una fortuna para tener un software a medida que solucione tus problemas.

En este tutorial práctico vamos a construir juntos una API REST básica utilizando Node.js y Express. Esta API te servirá como columna vertebral para una página web o una app móvil que te permita registrar, consultar, actualizar y borrar tus productos. ¡Agarrá tu tinto, abrí tu editor de código y pongámonos manos a la obra!

¿Por qué Node.js y Express para tu pyme?

Node.js es un entorno de ejecución que nos permite programar el backend (la lógica del servidor) usando JavaScript. Express, por su parte, es un framework minimalista que nos facilita la vida creando rutas y manejando peticiones HTTP.

Para los emprendedores en Colombia, esto es clave por tres razones:

Paso 1: Preparar el entorno de desarrollo

Antes de tirar código, necesitas tener las herramientas básicas instaladas en tu computador:

Abre tu terminal (o la terminal integrada de VS Code) y crea una nueva carpeta para tu proyecto:

mkdir inventario-pyme
cd inventario-pyme

Paso 2: Inicializar el proyecto e instalar dependencias

Una vez dentro de la carpeta, vamos a inicializar el proyecto de Node.js. Esto creará un archivo llamado package.json que guardará la información de tu proyecto y las librerías que uses.

npm init -y

El parámetro -y le dice a Node que acepte las configuraciones por defecto. Ahora, instalemos Express y otra librería llamada cors (que nos permite conectar nuestro frontend con el backend sin problemas de seguridad en el navegador):

npm install express cors

Paso 3: Crear el servidor y definir los datos

Crea un archivo en la raíz de tu carpeta llamado index.js. Este será el punto de entrada de nuestra aplicación. Vamos a configurar el servidor y a crear un arreglo (array) temporal en memoria para guardar nuestros productos.

const express = require('express');
const cors = require('cors');

const app = express();
const port = 3000;

// Middleware para entender JSON y permitir conexiones externas
app.use(cors());
app.use(express.json());

// Nuestra base de datos temporal en memoria
let productos = [
    { id: 1, nombre: 'Camiseta básica', precio: 25000, stock: 50 },
    { id: 2, nombre: 'Pantalón jeans', precio: 60000, stock: 20 }
];

// Iniciar el servidor
app.listen(port, () => {
    console.log(`Servidor corriendo en http://localhost:${port}`);
});

Si ahora corres en tu terminal node index.js, verás el mensaje de que el servidor está activo. Sin embargo, aún no hace nada visible. Vamos a crear las rutas.

Paso 4: Implementar el CRUD (Crear, Leer, Actualizar, Borrar)

El CRUD es el alma de cualquier software de gestión. Vamos a añadir las rutas justo antes de la línea app.listen.

1. Leer todos los productos (GET):

app.get('/api/productos', (req, res) => {
    res.status(200).json(productos);
});

2. Crear un nuevo producto (POST):

app.post('/api/productos', (req, res) => {
    const { nombre, precio, stock } = req.body;
    
    if (!nombre || !precio || stock === undefined) {
        return res.status(400).json({ error: 'Faltan datos del producto' });
    }

    const nuevoProducto = {
        id: productos.length + 1,
        nombre,
        precio,
        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 { nombre, precio, stock } = req.body;

    const productoIndex = productos.findIndex(p => p.id === id);

    if (productoIndex === -1) {
        return res.status(404).json({ error: 'Producto no encontrado' });
    }

    productos[productoIndex] = { id, nombre, precio, stock };
    res.status(200).json(productos[productoIndex]);
});

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(200).json({ mensaje: 'Producto eliminado correctamente' });
});

Paso 5: Probar que todo funcione

Con tu servidor corriendo (node index.js), abre Postman y prueba estas rutas:

Si todo sale bien, tu API ya está respondiendo. ¡Felicidades, ya tienes el backend de tu sistema de inventario!

Consejos prácticos para emprendedores colombianos

Conclusión

Desarrollar una herramienta para tu negocio no tiene que ser un dolor de cabeza ni un gasto exagerado. Con un poco de conocimiento y las herramientas correctas, puedes empezar a digitalizar tus procesos hoy mismo. Esta API REST es apenas el primer paso; a partir de aquí puedes construir una app móvil en React Native o una página web en React que consuma estos datos y le permita a tus clientes o empleados interactuar con tu inventario.

Sin embargo, sabemos que como emprendedor tu tiempo es oro y tu prioridad debe ser hacer crecer tu negocio, no preocuparte por bugs, servidores o por qué la app se cayó. Si quieres dar el salto a un software profesional, escalable y seguro, pero prefieres dejar el código en manos de expertos, en Camilincanins Company estamos listos para ayudarte. Desde páginas web y apps móviles hasta software a medida y consultoría, nosotros nos encargamos de la tecnología para que tú te enfoques en vender. ¡Contáctanos y conversemos sobre tu próximo gran proyecto!

¿Tienes un proyecto en mente? Te ayudamos a hacerlo realidad.

Solicitar cotización gratis 🦎