
Cómo integré APIs externas en Node.js sin volverme loco
Integrar APIs externas siempre suena fácil en teoría: un fetch
, un axios.get
y listo. Pero la realidad es que terminas peleándote con tokens, límites de peticiones y formatos de respuesta que parecen diseñados para arruinarte el día.
Yo tuve mis buenas dosis de frustración la primera vez que intenté meter Google Maps API y luego con una API de autenticación de terceros. Aquí te cuento cómo sobreviví.
El primer intento: Google Maps
Todo comenzó cuando quería mostrar ubicaciones en un proyecto sencillo. Me registré en la consola de Google, saqué la API Key y me lancé con entusiasmo… hasta que me di cuenta que cada petición tenía límites y que necesitaba configurar billing para que no me bloquearan.
import axios from "axios"
const apiKey = "TU_API_KEY"
const direccion = "Madrid, España"
async function geocode() {
const url = `https://maps.googleapis.com/maps/api/geocode/json?address=${encodeURIComponent(direccion)}&key=${apiKey}`
const res = await axios.get(url)
console.log(res.data.results[0].geometry.location)
}
geocode()
La primera vez funcionó, y luego me encontré con el famoso error de cuota excedida. Aprendí rápido que no puedes confiar ciegamente en que la API estará siempre disponible ni gratis.
Manejar errores y límites
Un error clásico al usar APIs externas es no manejar los errores. Si haces peticiones en bucle sin control, vas directo a que te bloqueen.
try {
const res = await axios.get(url)
return res.data
} catch (err) {
console.error("Error al llamar a la API:", err.message)
return null
}
Además, algunas APIs devuelven respuestas con códigos extraños o datos anidados hasta el infinito. Paciencia y console.log
fueron mis mejores amigos.
Autenticación con tokens
Otra batalla fue con una API que requería OAuth 2.0. Yo solo quería datos, pero terminé leyendo sobre access tokens, refresh tokens y expiraciones. Al final descubrí que lo mejor es encapsular toda esa lógica en un servicio separado.
import axios from "axios"
async function getData(token) {
const res = await axios.get("https://api.example.com/data", {
headers: { Authorization: `Bearer ${token}` }
})
return res.data
}
Tener un middleware que refresque tokens automáticamente me salvó de muchos dolores de cabeza.
Lo que aprendí de todo esto
- Lee la documentación completa, aunque dé pereza. Te ahorras sorpresas.
- Maneja los errores siempre, nunca asumas que la API responderá bien.
- Cuida las cuotas y límites, sobre todo en proyectos en producción.
- Separa la lógica de integración, así si la API cambia, no destrozas todo tu proyecto.
Conclusión
Integrar APIs externas en Node.js es como salir a carretera con un coche viejo: puede funcionar perfecto o dejarte tirado en cualquier momento. La clave está en programar defensivamente y no confiar en que la otra parte siempre cumplirá.
Hoy en día cada vez que me toca una API nueva, ya voy con más calma y preparo el terreno para errores. Lo que antes era frustración, ahora lo veo como parte natural del proceso de desarrollo.
Comentarios (0)
Comparte tu opinión sobre este post
Únete a la conversación
Inicia sesión para dejar un comentario