Las APIs REST son una parte fundamental del desarrollo web moderno, permitiendo la comunicación entre el frontend y el backend de una aplicación. En este tutorial, aprenderemos a crear una API REST utilizando Node.js y Express.js.
1. Instalando Node.js y Express.js
Antes de comenzar, asegúrate de tener Node.js instalado. Puedes verificarlo con:
node -v
Luego, crea una nueva carpeta para tu proyecto y configura un nuevo entorno de Node.js:
mkdir mi_api_rest && cd mi_api_rest
npm init -y
Instala Express.js, un framework minimalista para crear APIs en Node.js:
npm install express
2. Creando el Servidor con Express
Crea un archivo server.js
y agrega el siguiente código para inicializar un servidor básico:
const express = require('express');
const app = express();
const PORT = 3000;
app.use(express.json()); // Permite manejar JSON en las peticiones
app.get('/', (req, res) => {
res.send('Bienvenido a nuestra API REST en Node.js');
});
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
});
Ejecuta el servidor con:
node server.js
Abre tu navegador y visita http://localhost:3000/
para ver la respuesta del servidor.
3. Creando Rutas para la API
Vamos a definir rutas para gestionar usuarios (crear, leer, actualizar y eliminar - CRUD).
a) Definir Rutas Básicas
Modifica server.js
para agregar las siguientes rutas:
const users = [
{ id: 1, nombre: "Juan" },
{ id: 2, nombre: "María" }
];
// Obtener todos los usuarios
app.get('/users', (req, res) => {
res.json(users);
});
// Obtener un usuario por ID
app.get('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
user ? res.json(user) : res.status(404).json({ error: "Usuario no encontrado" });
});
b) Agregar un Nuevo Usuario
app.post('/users', (req, res) => {
const newUser = { id: users.length + 1, nombre: req.body.nombre };
users.push(newUser);
res.status(201).json(newUser);
});
c) Actualizar un Usuario
app.put('/users/:id', (req, res) => {
const user = users.find(u => u.id === parseInt(req.params.id));
if (user) {
user.nombre = req.body.nombre;
res.json(user);
} else {
res.status(404).json({ error: "Usuario no encontrado" });
}
});
d) Eliminar un Usuario
app.delete('/users/:id', (req, res) => {
const index = users.findIndex(u => u.id === parseInt(req.params.id));
if (index !== -1) {
users.splice(index, 1);
res.status(204).send();
} else {
res.status(404).json({ error: "Usuario no encontrado" });
}
});
4. Probando la API con Postman o cURL
Puedes probar la API usando Postman o cURL.
Obtener todos los usuarios
curl -X GET http://localhost:3000/users
Crear un usuario
curl -X POST http://localhost:3000/users -H "Content-Type: application/json" -d '{"nombre": "Carlos"}'
Actualizar un usuario
curl -X PUT http://localhost:3000/users/1 -H "Content-Type: application/json" -d '{"nombre": "Juan actualizado"}'
Eliminar un usuario
curl -X DELETE http://localhost:3000/users/2
Hemos creado una API REST básica con Node.js y Express.js, implementando operaciones CRUD. Este es el primer paso para construir aplicaciones más avanzadas con bases de datos y autenticación.