Cómo crear una API pública y gratuita para tus productos
¿Quieres compartir tu catálogo de productos con el mundo? En este tutorial te mostraré cómo crear una API pública y gratuita utilizando Node.js, Express y MongoDB. Aprenderás cómo estructurar tu API, conectar una base de datos, y finalmente desplegarla para que cualquiera pueda acceder a ella desde cualquier lugar del mundo.
¿Por qué crear una API pública?
Las APIs públicas permiten compartir datos de manera abierta, lo que es útil si quieres que otros desarrolladores, aplicaciones o servicios puedan acceder a tu catálogo de productos para integrarlos en sus proyectos o simplemente para proporcionar información a los usuarios de forma dinámica.
Requisitos previos
Para seguir este tutorial, necesitarás lo siguiente:
- Node.js y npm instalados en tu máquina.
- Una cuenta de MongoDB Atlas (es gratuito y fácil de usar).
- Una plataforma gratuita para desplegar la API como Heroku o Render.
1. Definir la estructura de tus productos
Antes de comenzar a escribir código, define qué datos quieres compartir a través de tu API. Aquí tienes un ejemplo de cómo podría lucir un producto en tu base de datos:
{
"nombre": "Producto X",
"precio": 10.99,
"descripción": "Este es un producto de ejemplo.",
"categoría": "Alimentos"
}
Este ejemplo contiene un nombre, precio, descripción y categoría, pero puedes añadir más campos según las necesidades de tu aplicación.
2. Configurar MongoDB Atlas
MongoDB Atlas es una solución gratuita que te permite crear y gestionar bases de datos en la nube. Sigue estos pasos para configurar tu base de datos:
- Regístrate en MongoDB Atlas.
- Crea un nuevo cluster y establece las credenciales de usuario.
- Crea una base de datos llamada
tienday una colección llamadaproductos. - Copia el URI de conexión, lo necesitarás para conectar tu API.
3. Crear una API con Node.js y Express
Una vez configurada la base de datos, el siguiente paso es construir la API. Vamos a usar Node.js con Express y Mongoose (para conectarnos a MongoDB).
Primero, crea un nuevo proyecto e instala las dependencias necesarias:
mkdir api-productos && cd api-productos
npm init -y
npm install express mongoose cors
A continuación, crea el archivo index.js que contendrá el código de tu API:
const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const app = express();
const port = process.env.PORT || 3000;
// Conexión a MongoDB
mongoose.connect('TU_URI_DE_MONGO_ATLAS', { useNewUrlParser: true, useUnifiedTopology: true });
// Definición del esquema y modelo de producto
const productSchema = new mongoose.Schema({
nombre: String,
precio: Number,
descripción: String,
categoría: String,
});
const Product = mongoose.model('Product', productSchema);
// Configuración de CORS y parsing de JSON
app.use(cors());
app.use(express.json());
// Ruta para obtener todos los productos
app.get('/productos', async (req, res) => {
try {
const productos = await Product.find();
res.json(productos);
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Error al obtener los productos' });
}
});
// Iniciar el servidor
app.listen(port, () => {
console.log(`API escuchando en http://localhost:${port}`);
});
Este código define una API simple que expone una lista de productos almacenados en MongoDB. La ruta /productos devolverá todos los productos disponibles en la base de datos.
4. Desplegar la API
Ahora que la API está lista, es momento de hacerla pública. Puedes desplegarla de forma gratuita utilizando plataformas como Heroku, Render o Railway. Aquí te muestro cómo hacerlo en Render:
- Inicia sesión en Render.
- Crea un nuevo proyecto, seleccionando tu repositorio de GitHub donde tienes el código de tu API.
- Render se encargará de crear un servidor y asignarle una URL pública a tu API.
5. Hacer pública la API y permitir acceso desde cualquier origen
Para que cualquier aplicación pueda consumir tu API, debes configurar CORS adecuadamente. Ya lo hicimos previamente usando el middleware cors, lo que permite a cualquier origen hacer solicitudes a tu servidor:
const cors = require('cors');
app.use(cors());
6. Probar la API
Con la API desplegada, abre la URL pública que Render te asignó en el navegador. Si accedes a la ruta /productos, deberías ver el listado de tus productos en formato JSON.