¡Hola, emprendedores y devs de Colombia! Sabemos que acá el tiempo es oro y que mantener las operaciones de un negocio rodando no es tarea fácil. En un mundo donde todo se digitaliza, tener tus propios sistemas para gestionar ventas, inventarios o clientes ya no es un lujo, es una necesidad. Hoy te vamos a enseñar cómo montar tu primera API REST usando Node.js y Express. Es más sencillo de lo que imaginas y te abrirá las puertas para crear apps web o móviles que se conecten con tu base de datos.
¿Qué es una API REST y por qué tu negocio la necesita?
Para no enredarnos con términos muy técnicos, piensa en una API (Application Programming Interface) como el mesero de un restaurante. Tú (la aplicación móvil o la página web) le pides un plato (datos) al mesero (la API), y él va a la cocina (la base de datos), lo trae y te lo entrega. Una API REST simplemente es una forma estándar y ordenada de organizar ese restaurante digital.
Si tienes una tienda en Medellín, Bogotá o cualquier rinconcito de Colombia y quieres que tu app móvil sepa cuántos productos te quedan en bodega, necesitas una API que consulte esa información y se la envíe al celular. ¡Vamos a construir una básica para gestionar un inventario!
Preparando el entorno de desarrollo
Antes de poner manos a la obra, necesitamos tener nuestras herramientas listas. Lo bueno de Node.js es que es gratuito y funciona en Windows, Mac y Linux.
- Instala Node.js: Ve a la página oficial de Node.js y descarga la versión LTS (Long Term Support). Es la más estable.
- Un buen editor de código: Te recomendamos Visual Studio Code (VS Code). Es liviano, gratuito y tiene mil extensiones que te hacen la vida más fácil.
- Postman: Es una herramienta gráfica para probar si tu API está funcionando bien sin necesidad de armar una interfaz visual completa todavía.
Inicializando el proyecto
Abre VS Code, crea una carpeta nueva llamada inventario-api y ábrela en el editor. Abre la terminal integrada (Ctrl + ñ o Cmd + ñ) y ejecuta el siguiente comando para iniciar el proyecto:
npm init -y
Esto creará un archivo package.json que guardará la información de tu proyecto y las dependencias. Ahora, vamos a instalar Express, que es el framework que nos facilitará enormemente la creación del servidor:
npm install express
Programando el servidor con Express
Crea un archivo en la raíz de tu carpeta llamado index.js. Este será el corazón de nuestra aplicación. Vamos a escribir el código básico para levantar un servidor local:
const express = require('express');
const app = express();
const port = 3000;
// Middleware para poder entender los datos en formato JSON que nos envíen
app.use(express.json());
app.listen(port, () => {
console.log(`Servidor corriendo exitosamente en http://localhost:${port}`);
});
Para ver esto en acción, ve a la terminal y ejecuta node index.js. Deberías ver el mensaje en la consola. Si es así, ¡felicitaciones! Ya tienes un servidor montado. Presiona Ctrl + C para detenerlo mientras seguimos programando.
Creando las rutas para gestionar productos
Como somos prácticos, vamos a simular una base de datos usando un arreglo (array) en memoria. En un proyecto real, aquí conectarías PostgreSQL o MongoDB, pero para entender el concepto, esto es perfecto.
Añade el siguiente código a tu index.js, justo antes de la línea app.listen:
// Nuestra "base de datos" temporal
let productos = [
{ id: 1, nombre: 'Camiseta Camilincanins', precio: 45000, stock: 100 },
{ id: 2, nombre: 'Termo para café', precio: 30000, stock: 50 }
];
// Ruta GET para ver todos los productos
app.get('/api/productos', (req, res) => {
res.json(productos);
});
// Ruta POST para agregar un nuevo producto
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({ mensaje: 'Producto agregado con éxito', producto: nuevoProducto });
});
Aquí estamos definiendo dos rutas. La primera (GET) responde con la lista de productos cuando alguien la consulta. La segunda (POST) recibe datos nuevos (nombre, precio, stock) y los agrega a nuestra lista.
Probando nuestra API con Postman
Vuelve a ejecutar tu servidor con node index.js. Abre tu navegador y entra a http://localhost:3000/api/productos. Verás los dos productos iniciales en formato JSON. ¡Excelente!
Ahora probemos el POST. Abre Postman, crea una nueva petición de tipo POST hacia http://localhost:3000/api/productos. Ve a la pestaña "Body", selecciona "raw" y el formato "JSON", y envía esto:
{
"nombre": "Gorra con logo",
"precio": 25000,
"stock": 20
}
Al presionar "Send", la API te responderá con un mensaje de éxito. Si vuelves a consultar la ruta GET, verás que el nuevo producto ya aparece. ¡Acabas de crear el backend básico para el inventario de tu negocio!
Consejos prácticos para llevarlo a producción
Este ejemplo es bacano para aprender, pero antes de ponerlo en internet para que tus clientes o empleados lo usen, ten en cuenta esto:
- Usa una base de datos real: El arreglo se borra si el servidor se reinicia. Conecta tu API a una base de datos como PostgreSQL o MongoDB.
- Instala Nodemon: Es una herramienta que reinicia el servidor automáticamente cada vez que guardas un cambio. Solo corre
npm install -g nodemony luego inicia tu app connodemon index.js. - Seguridad ante todo: Protege tus rutas con autenticación (como JWT) para que nadie externo pueda modificar tu inventario. Usa variables de entorno (
dotenv) para guardar contraseñas y puertos.
Conclusión
Desarrollar software a medida no tiene que ser un mito inalcanzable. Con herramientas como Node.js, puedes empezar a construir las soluciones tecnológicas que tu pyme necesita para ser más eficiente y escalar. La clave es empezar pequeño, probar y seguir iterando.
Sin embargo, sabemos que como emprendedor tu tiempo es valioso y quizás prefieras enfocarte en hacer crecer tu negocio mientras dejas la parte técnica en manos de expertos. Si quieres dar el salto digital, ya sea con una página web, una app móvil o un software a medida, en Camilincanins Company estamos listos para acompañarte en el proceso. ¡Escríbenos y conversemos sobre cómo podemos transformar tu idea en realidad!