Creando APIs con Node.js

25 de agosto de 2024
3 min lectura
By Sly & AI

Table of Contents

This is a list of all the sections in this post. Click on any of them to jump to that section.

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.