Node.js

Building RESTful APIs with Node.js and Express

Learn how to create robust and scalable RESTful APIs using Node.js and Express. We'll cover routing, middleware, validation, and best practices.

By Giovanni Moreno 2 min read
Building RESTful APIs with Node.js and Express

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

Giovanni Moreno

Application Developer & AI Enthusiast

Developer passionate about creating modern web applications and exploring AI possibilities. Sharing knowledge and experiences from the software development world.