Creación de APIs con Node.js, Express y Axios: Una guía completa

Aprende a crear y usar APIs con Node.js, Express y Axios. Descubre buenas prácticas para errores, headers y APIdog para pruebas y documentación.

Daniel Costa

Daniel Costa

15 April 2025

Creación de APIs con Node.js, Express y Axios: Una guía completa

¡Hola, compañeros desarrolladores! Hoy, nos sumergimos en el mundo de la creación de APIs utilizando Node.js, Express y Axios. Tanto si eres un programador experimentado como si estás empezando, esta publicación te guiará a través de la creación de APIs robustas de manera eficiente. Además, te presentaré una increíble herramienta, Apidog, que agilizará tu proceso de pruebas y documentación de APIs.

💡
¿Listo para llevar tu desarrollo de APIs al siguiente nivel? ¡Descarga Apidog gratis y comienza a probar y documentar tus APIs sin esfuerzo hoy mismo!
button

Introducción

Las APIs (Interfaces de Programación de Aplicaciones) se han convertido en la columna vertebral de las aplicaciones web modernas. Permiten que diferentes sistemas de software se comuniquen y compartan datos sin problemas. Ya sea que estés desarrollando una aplicación web, una aplicación móvil o incluso una aplicación de escritorio, las APIs son esenciales.

¿Por qué Node.js, Express y Axios?

Node.js, Express y Axios son un trío dinámico cuando se trata de construir y consumir APIs. Aquí está el por qué:

Al combinar estas tres poderosas herramientas, puedes construir APIs eficientes, escalables y fáciles de mantener.

Configurando Tu Entorno

Antes de sumergirnos en el código, configuremos nuestro entorno. Necesitarás Node.js y npm (Node Package Manager) instalados en tu máquina.

  1. Instala Node.js y npm: Dirígete al sitio web de Node.js y descarga la última versión. npm viene incluido con Node.js.
  2. Inicializa un nuevo proyecto: Abre tu terminal y ejecuta:
mkdir nodejs-express-axios-api
cd nodejs-express-axios-api
npm init -y

Esto creará un nuevo directorio e inicializará un nuevo proyecto Node.js con un archivo package.json predeterminado.

  1. Instala Express y Axios:
npm install express axios

Creando Tu Primera API con Node.js y Express

Ahora que nuestro entorno está configurado, creemos una API simple.

Configurando Express

Primero, necesitamos configurar nuestro servidor Express. Crea un archivo llamado server.js y agrega el siguiente código:

const express = require('express');
const app = express();
const PORT = 3000;

// Middleware to parse JSON
app.use(express.json());

// Start the server
app.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});

Definiendo Puntos Finales de la API

A continuación, definamos algunos puntos finales de la API. Crearemos puntos finales para una aplicación CRUD simple que gestione una lista de libros.

  1. Crear un Libro: Este punto final permitirá a los usuarios agregar un nuevo libro a la lista.
  2. Leer Libros: Este punto final devolverá la lista de todos los libros.
  3. Actualizar un Libro: Este punto final permitirá a los usuarios actualizar los detalles de un libro existente.
  4. Eliminar un Libro: Este punto final permitirá a los usuarios eliminar un libro de la lista.

Agrega el siguiente código a server.js:

let books = [];

// Create a Book
app.post('/books', (req, res) => {
    const book = req.body;
    books.push(book);
    res.status(201).send('Book added successfully');
});

// Read Books
app.get('/books', (req, res) => {
    res.json(books);
});

// Update a Book
app.put('/books/:id', (req, res) => {
    const bookId = req.params.id;
    const updatedBook = req.body;
    books = books.map(book => book.id === bookId ? updatedBook : book);
    res.send('Book updated successfully');
});

// Delete a Book
app.delete('/books/:id', (req, res) => {
    const bookId = req.params.id;
    books = books.filter(book => book.id !== bookId);
    res.send('Book deleted successfully');
});

Ejecutando Tu API

Para ejecutar tu API, simplemente usa el siguiente comando en tu terminal:

node server.js

Deberías ver el mensaje: Server is running on http://localhost:3000.

Consumiendo APIs con Axios

Ahora que tenemos nuestra API en funcionamiento, aprendamos cómo consumirla usando Axios.

Haciendo Solicitudes HTTP con Axios

Axios facilita el envío de solicitudes HTTP asíncronas a los puntos finales REST y la realización de operaciones CRUD. Demostraremos cómo realizar cada operación (Crear, Leer, Actualizar, Eliminar) usando Axios.

Primero, instala Axios en tu proyecto si aún no lo has hecho:

npm install axios

Ejemplo: Usando Axios para Interactuar con Nuestra API de Libros

Crea un nuevo archivo llamado client.js y agrega el siguiente código:

const axios = require('axios');
const API_URL = 'http://localhost:3000/books';

// Create a new book
const createBook = async (book) => {
    try {
        const response = await axios.post(API_URL, book);
        console.log(response.data);
    } catch (error) {
        console.error(error);
    }
};

// Read all books
const getBooks = async () => {
    try {
        const response = await axios.get(API_URL);
        console.log(response.data);
    } catch (error) {
        console.error(error);
    }
};

// Update a book
const updateBook = async (bookId, updatedBook) => {
    try {
        const response = await axios.put(`${API_URL}/${bookId}`, updatedBook);
        console.log(response.data);
    } catch (error) {
        console.error(error);
    }
};

// Delete a book
const deleteBook = async (bookId) => {
    try {
        const response = await axios.delete(`${API_URL}/${bookId}`);
        console.log(response.data);
    } catch (error) {
        console.error(error);
    }
};

// Usage examples
const newBook = { id: '1', title: 'Node.js for Beginners', author: 'John Doe' };
createBook(newBook);
getBooks();
updateBook('1', { id: '1', title: 'Advanced Node.js', author: 'John Doe' });
deleteBook('1');

Explicación

  1. createBook: Envía una solicitud POST para agregar un nuevo libro.
  2. getBooks: Envía una solicitud GET para recuperar todos los libros.
  3. updateBook: Envía una solicitud PUT para actualizar un libro existente.
  4. deleteBook: Envía una solicitud DELETE para eliminar un libro.

Uso Avanzado de Axios y Manejo de Errores

El manejo de errores es crucial cuando se trata de solicitudes HTTP. Axios proporciona varias formas de manejar los errores de manera efectiva.

Manejo de Errores

Modifica el archivo client.js para manejar los errores de manera más elegante:

const axios = require('axios');
const API_URL = 'http://localhost:3000/books';

// Create a new book
const createBook = async (book) => {
    try {
        const response = await axios.post(API_URL, book);
        console.log(response.data);
    } catch (error) {
        handleError(error);
    }
};

// Read all books
const getBooks = async () => {
    try {
        const response = await axios.get(API_URL);
        console.log(response.data);
    } catch (error) {
        handleError(error);
    }
};

// Update a book
const updateBook = async (bookId, updatedBook) => {
    try {
        const response = await axios.put(`${API_URL}/${bookId}`, updatedBook);
        console.log(response.data);
    } catch (error) {
        handleError(error);
    }
};

// Delete a book
const deleteBook = async (bookId) => {
    try {
        const response = await axios.delete(`${API_URL}/${bookId}`);
        console.log(response.data);
    } catch (error) {
        handleError(error);
    }
};

// Error handling function
const handleError = (error) => {
    if (error.response) {
        // The request was made and the server responded with a status code
        console.error('Error:', error.response.data);
        console.error('Status:', error.response.status);
        console.error('Headers:', error.response.headers);
    } else if (error.request) {
        // The request was made but no response was received
        console.error('Error: No response received', error.request);
    } else {
        // Something happened in setting up the request
        console.error('Error:', error.message);
    }
};

Estableciendo Encabezados Personalizados e Interceptores

Axios te permite establecer encabezados personalizados e interceptar solicitudes o respuestas. Esto puede ser útil para agregar tokens de autenticación o registro.

const axios = require('axios');
const API_URL = 'http://localhost:3000/books';

// Axios instance with custom headers
const axiosInstance = axios.create({
    baseURL: API_URL,
    headers: { 'Authorization': 'Bearer YOUR_TOKEN_HERE' }
});

// Request interceptor
axiosInstance.interceptors.request.use(config => {
    console.log('Request sent at:', new Date().toISOString());
    return config;
}, error => {
    return Promise.reject(error);
});

// Response interceptor
axiosInstance.interceptors.response.use(response => {
    console.log('Response received at:', new Date().toISOString());
    return response;
}, error => {
    return Promise.reject(error);
});

// Example usage with interceptors
const getBooks = async () => {
    try {
        const response = await axiosInstance.get('/');
        console.log(response.data);
    } catch (error) {
        console.error(error);
    }
};

getBooks

();

Probando y Documentando Tu API con APIdog

Probar y documentar tus APIs es crucial para asegurar que funcionen como se espera y sean fáciles de usar para otros desarrolladores. Aquí es donde entra APIdog.

¿Qué es Apidog?

APIdog es una poderosa herramienta que te ayuda a probar y documentar tus APIs sin esfuerzo. Con APIdog, puedes crear documentación completa de la API, realizar pruebas automatizadas y compartir tus APIs con tu equipo.

Probando la API con Apidog

Repasemos un breve tutorial sobre cómo usar Apidog para hacer una solicitud [post].

button

Paso 1: Abre Apidog y crea una nueva solicitud.

Apidog

Paso 2: Ingresa la API

Apidog

Paso 3: Ingresa los Parámetros

Apidog

Usar Apidog puede ahorrarte tiempo y esfuerzo al trabajar con solicitudes POST.

Documentando Nuestra API con Apidog

Para generar fácilmente la documentación de la API, simplemente sigue estas guías paso a paso:

Paso 1: Regístrate en Apidog

Para comenzar a usar Apidog para la documentación de la API, crea una cuenta e inicia sesión. Al iniciar sesión, serás redirigido al Centro de Proyectos, donde puedes seleccionar el proyecto predeterminado o crear uno nuevo.

Este es el centro de proyectos al que serás redirigido al iniciar sesión en Apidog.

Paso 2: Crea una Nueva API

Tu proyecto de API constará de múltiples puntos finales. Agrega un punto final haciendo clic en el botón "+" o en "Agregar Punto Final" dentro de tu proyecto.

Crea un nuevo punto final en Apidog

Paso 3: Completa la Información de la API

Proporciona detalles como la URL del punto final, la descripción y los detalles de solicitud/respuesta. La documentación de los puntos finales incluye:

Paso 4: Guarda la Documentación de la API

Después de ingresar la información necesaria, haz clic en "Guardar" para guardar la documentación de la API.

Haciendo clic en "Ejecutar" para probar la API.
Haz clic en "Ejecutar" para probar la API

Paso 5: Prueba la API Directamente desde el Documento de la API en Línea

Una vez que guardes la documentación de la API, habrá una opción para "Ejecutar" tu API. Al hacer clic en el botón "Ejecutar", se enviará una solicitud de API y se obtendrá la respuesta para que pruebes los puntos finales. Durante este proceso, puedes identificar cualquier error y problema que deba abordarse.

Haciendo clic en "Enviar" para enviar la solicitud de API y obtener el informe de prueba

Una vez que la documentación de la API satisfaga las necesidades comerciales, puedes compartirla con otros a través de un solo enlace.

Beneficios de Generar Documentación de API en Línea Usando Apidog

Puedes enviar una solicitud de API directamente en la documentación creada por Apidog
Puedes generar código de solicitud y respuesta en el documento en línea creado por Apidog

Conclusión

¡Felicitaciones! Has construido con éxito una API robusta utilizando Node.js, Express y Axios. También has aprendido cómo consumir APIs con Axios, manejar errores de manera efectiva y mejorar tus pruebas y documentación de APIs con APIdog.

Las APIs son la columna vertebral del desarrollo web moderno, y dominar estas herramientas te encaminará hacia la creación de aplicaciones potentes y escalables. No olvides descargar APIdog gratis para agilizar tu proceso de desarrollo y pruebas de APIs.

button

Explore more

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

15 April 2025

Cómo usar n8n con servidores MCP

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

14 April 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

11 April 2025

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs