Creando APIs con Node.js

25 de agosto de 2024

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.