Construyendo APIs RESTful con Node.js y Express
Aprende a crear APIs RESTful robustas y escalables utilizando Node.js y Express. Cubriremos enrutamiento, middleware, validación y mejores prácticas.
Introducción
Las APIs RESTful son el estándar de facto para la comunicación entre servicios web. En este artículo, aprenderás a construir una API robusta utilizando Node.js y Express.
Configuración del Proyecto
Primero, creemos un nuevo proyecto Node.js:
mkdir mi-api-rest && cd mi-api-rest
npm init -y
npm install express cors helmet morgan
npm install -D nodemon
Estructura del Proyecto
Una estructura limpia es fundamental para maintainability:
src/
├── controllers/
├── routes/
├── middleware/
├── models/
├── utils/
└── app.js
Implementando el Servidor
const express = require('express');
const cors = require('cors');
const helmet = require('helmet');
const morgan = require('morgan');
const app = express();
// Middleware de seguridad
app.use(helmet());
app.use(cors());
app.use(morgan('dev'));
// Parser de JSON
app.use(express.json());
// Rutas
app.use('/api/users', require('./routes/users'));
app.use('/api/posts', require('./routes/posts'));
// Manejo de errores
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({
error: 'Algo salió mal!',
message: err.message
});
});
module.exports = app;
Middleware de Validación
La validación es crucial para la integridad de los datos:
const validateUser = (req, res, next) => {
const { name, email } = req.body;
if (!name || name.length < 2) {
return res.status(400).json({
error: 'El nombre debe tener al menos 2 caracteres'
});
}
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!email || !emailRegex.test(email)) {
return res.status(400).json({
error: 'Email inválido'
});
}
next();
};
Conclusión
Ahora tienes las bases para construir APIs RESTful profesionales. Recuerda siempre validar los datos de entrada, implementar manejo de errores adecuado, y seguir las convenciones REST para crear APIs mantenibles y escalables.
¿Tienes preguntas? Déjame un comentario abajo o contáctame en LinkedIn.
Giovanni Moreno
Application Developer & AI Enthusiast
Desarrollador apasionado por crear aplicaciones web modernas y explorar las posibilidades de la IA. Comparto conocimientos y experiencias del mundo del desarrollo de software.