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

La transformación digital no es un lujo, es una necesidad. En Colombia, cada vez más emprendedores y dueños de pequeños negocios se dan cuenta de que tener presencia digital va más allá de una página de Facebook. Si quieres que tu app móvil, tu página web o tu software a medida funcionen de manera integrada, necesitas que se comuniquen con un servidor. Ahí es donde entra la API.

En este tutorial vamos a construir juntos una API REST básica utilizando Node.js y Express. Imagina que tienes una pequeña tienda de barrio o un emprendimiento de venta de café colombiano por internet y necesitas gestionar tu inventario desde tu celular. Vamos a crear el corazón de ese sistema.

¿Qué es una API REST y por qué la necesitas?

Para ponerlo en términos sencillos, imagina que estás en un restaurante. Tú eres el cliente (la app móvil), el menú es la información disponible y el mesero es la API. El mesero toma tu pedido (solicitud), va a la cocina (el servidor/base de datos), trae la comida y te la entrega. Una API REST es un conjunto de reglas que permite que diferentes aplicaciones se comuniquen entre sí a través de internet usando verbos HTTP como GET (obtener), POST (crear), PUT (actualizar) y DELETE (eliminar).

Para un emprendedor, esto significa que puedes tener tu base de datos centralizada y conectarla a una app para tus clientes y a un panel para tus empleados, todo apuntando al mismo lugar.

Preparando el terreno (Requisitos)

Antes de empezar a picar código, necesitas tener listo lo siguiente:

Paso 1: Inicializar el proyecto

Abre tu terminal o línea de comandos y crea una nueva carpeta para tu proyecto. Navega dentro de ella e inicializa un proyecto de Node.js ejecutando los siguientes comandos:

mkdir inventario-cafe
cd inventario-cafe
npm init -y

El comando npm init -y crea un archivo package.json con la configuración básica. 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

Crea un archivo llamado index.js en la raíz de tu carpeta. Este será el punto de entrada de nuestra aplicación. Ábrelo en tu editor y escribe el siguiente código:

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}`);
});

Aquí estamos importando Express, inicializando la aplicación y diciéndole que escuche en el puerto 3000. También añadimos app.use(express.json()), que es vital para que nuestro servidor pueda entender los datos en formato JSON que le enviemos.

Paso 3: Definir nuestras rutas y datos (El Inventario)

Para este tutorial, no vamos a conectar una base de datos real (como MongoDB o PostgreSQL) para mantenerlo sencillo. Usaremos un arreglo en la memoria. Vamos a gestionar productos de café. Añade esto debajo de la configuración del middleware:

let productos = [
    { id: 1, nombre: 'Café Juan Valdez 500g', precio: 25000, stock: 40 },
    { id: 2, nombre: 'Café Orgánico Huila 1kg', precio: 45000, stock: 15 }
];

// Ruta para obtener todos los productos (GET)
app.get('/productos', (req, res) => {
    res.json(productos);
});

// Ruta para crear un nuevo producto (POST)
app.post('/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);
});

Con el verbo GET en la ruta /productos, cuando alguien visite esa dirección, el servidor le responderá con la lista de nuestros cafés. Con el verbo POST, permitimos que se envíen nuevos datos para agregarlos a nuestro inventario.

Paso 4: Actualizar y eliminar productos

Un inventario no solo es recibir cosas, también es actualizar precios o quitar productos que ya no vendemos. Vamos a añadir las rutas para PUT y DELETE:

// Actualizar un producto (PUT)
app.put('/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' });
    }
});

// Eliminar un producto (DELETE)
app.delete('/productos/:id', (req, res) => {
    const id = parseInt(req.params.id);
    productos = productos.filter(p => p.id !== id);
    res.status(204).send();
});

Aquí usamos req.params.id para capturar el ID del producto que viene en la URL (por ejemplo, /productos/1). Si el producto existe en el arreglo, lo actualizamos con los nuevos datos del cuerpo de la petición (req.body), y si no, respondemos con un error 404. Para eliminar, simplemente filtramos el arreglo para quitar el producto con ese ID.

Paso 5: Probar nuestra API

Para ver todo esto en acción, ve a tu terminal y ejecuta:

node index.js

Deberías ver el mensaje "Servidor corriendo en http://localhost:3000". Ahora puedes abrir Postman y hacer las siguientes pruebas:

Consejos prácticos para tu emprendimiento

Conclusión

Crear una API REST es el primer gran paso para entender cómo funcionan las aplicaciones modernas. Ya tienes en tus manos el conocimiento básico para que tu negocio empiece a centralizar su información y esté listo para conectarse con apps móviles o portales web. La tecnología debe ser una aliada para escalar tu emprendimiento, no un obstáculo.

Si en este camino sientes que necesitas ayuda profesional para llevar tu idea al siguiente nivel, ya sea desarrollando la app completa, conectando bases de datos seguras o creando una experiencia de usuario de otro mundo, en Camilincanins Company estamos listos para acompañarte. Escríbenos y conversemos sobre cómo podemos construir el software a medida que tu negocio en Colombia necesita para crecer.

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

Solicitar cotización gratis 🦎