Consumir una API en Node.js y Express es fundamental para integrar datos de servicios externos en tus aplicaciones web.
En esta guía, aprenderás a realizar solicitudes HTTP utilizando librerías como Axios y Fetch, y cómo manejar las respuestas de manera eficiente para interactuar con APIs RESTful y otros servicios externos.
Consumir una API significa obtener datos de un servidor externo. En este proceso:
GET, POST, etc.), y en algunos casos un cuerpo o encabezados.mkdir consumir-api
cd consumir-api
npm init -y npm install express node-fetch axios touch index.js fetchnode-fetch para realizar solicitudes HTTP:const fetch = require('node-fetch'); async function fetchPosts() {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const posts = await response.json();
console.log(posts);
} catch (error) {
console.error('Error al consumir la API:', error);
}
}
fetchPosts(); const express = require('express');
const app = express();
const PORT = 3000;
app.get('/posts', async (req, res) => {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const posts = await response.json();
res.json(posts);
} catch (error) {
res.status(500).json({ message: 'Error al consumir la API' });
}
});
app.listen(PORT, () => console.log(`Servidor corriendo en http://localhost:${PORT}`)); axiosaxios para realizar solicitudes HTTP:const axios = require('axios'); async function fetchUsers() {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/users');
console.log(response.data);
} catch (error) {
console.error('Error al consumir la API:', error);
}
}
fetchUsers(); app.get('/users', async (req, res) => {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/users');
res.json(response.data);
} catch (error) {
res.status(500).json({ message: 'Error al consumir la API' });
}
}); Archivo index.js con ambas implementaciones:
const express = require('express');
const fetch = require('node-fetch');
const axios = require('axios');
const app = express();
const PORT = 3000;
// Endpoint usando node-fetch
app.get('/posts', async (req, res) => {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const posts = await response.json();
res.json(posts);
} catch (error) {
res.status(500).json({ message: 'Error al consumir la API' });
}
});
// Endpoint usando axios
app.get('/users', async (req, res) => {
try {
const response = await axios.get('https://jsonplaceholder.typicode.com/users');
res.json(response.data);
} catch (error) {
res.status(500).json({ message: 'Error al consumir la API' });
}
});
app.listen(PORT, () => console.log(`Servidor corriendo en http://localhost:${PORT}`)); Consumir una API desde Node.js y Express es una tarea sencilla y flexible con herramientas como node-fetch o axios.