API del Clima con TypeScript: async/await, fetch y tipos

Descubre cómo crear una CLI del clima con TypeScript usando async/await, fetch y pruebas con Jest. Aprende a manejar errores HTTP y tipar respuestas de API.

6 jun 2026 • 4 min read • Q2BSTUDIO Team

Guía práctica: llamadas asíncronas y mocking en TypeScript

En el desarrollo de software moderno, la capacidad de consumir APIs externas de forma eficiente y segura es una competencia fundamental. TypeScript, con su sistema de tipos estáticos, ofrece un entorno robusto para construir aplicaciones que interactúan con servicios web, especialmente cuando se combina con async/await y la API nativa fetch. Este artículo explora las claves técnicas para implementar un cliente de API del clima, analizando desde la definición de tipos hasta las estrategias de testing, y cómo estas prácticas se integran en el desarrollo profesional dentro de una empresa de tecnología.

Uno de los primeros desafíos al trabajar con APIs externas es modelar correctamente la respuesta JSON. En TypeScript, se recomienda definir tipos (type o interface) que reflejen con precisión la estructura devuelta por el servicio. Aquí es crucial distinguir entre valores numéricos y cadenas: por ejemplo, la temperatura llega como número, mientras que la unidad ('°C') aparece en un campo separado. Ignorar esta distinción puede provocar errores en tiempo de ejecución. Una práctica habitual en equipos como los de Q2BSTUDIO, especializados en aplicaciones a medida, es inspeccionar primero la respuesta real de la API antes de escribir los tipos, asegurando una correspondencia exacta entre el contrato de datos y las estructuras del código.

La función fetch integrada en Node.js y los navegadores permite realizar peticiones asíncronas de forma sencilla. Sin embargo, a diferencia de algunas librerías HTTP de Java, fetch no rechaza la promesa cuando recibe un código de error HTTP (como 404 o 500). En su lugar, la propiedad response.ok se vuelve false. Esto obliga al desarrollador a verificar explícitamente el estado de la respuesta y lanzar una excepción personalizada. Este patrón es esencial para construir software a medida resiliente, donde el manejo de errores está diseñado para cada contexto de negocio. Además, cuando el valor del timezone puede ser opcional (por ejemplo, cuando el usuario introduce coordenadas manualmente), es recomendable usar un condicional para incluirlo solo si existe, evitando enviar parámetros vacíos a la API.

Otro aspecto clave es la extracción de tipos a partir de objetos existentes mediante keyof typeof. Esta técnica permite derivar automáticamente una unión de tipos a partir de las claves de un objeto constante, eliminando la necesidad de mantener un enum redundante. Por ejemplo, si se define un mapeo de ciudades con sus coordenadas, se puede obtener directamente el tipo 'nombre de ciudad' como 'Sapporo' | 'Sendai' | ... . Esta aproximación es muy valorada en proyectos de inteligencia artificial para empresas, donde los modelos de datos suelen evolucionar rápido y se necesita flexibilidad sin sacrificar la seguridad de tipos.

En el ámbito de las pruebas unitarias, una de las tareas más comunes es simular llamadas a APIs externas para evitar depender de servicios en red durante el test. En TypeScript, se puede reemplazar la función global fetch utilizando jest.spyOn(global, 'fetch') y configurando un valor simulado con mockResolvedValue. Para verificar tanto la estructura como los tipos de la respuesta, se recomienda usar toMatchObject combinado con expect.any(Number), que es más estricto que un simple toBeDefined(). Es fundamental limpiar los mocks en el bloque afterEach para evitar efectos colaterales entre pruebas, siguiendo las mejores prácticas de equipos que ofrecen servicios cloud AWS y Azure, donde la calidad del software es crítica para entornos de producción.

La integración de estos patrones en un flujo de trabajo real refleja la madurez técnica que se espera en el desarrollo empresarial. Por ejemplo, al construir un panel de visualización de datos meteorológicos, se podría combinar el consumo de APIs con herramientas de inteligencia de negocio como Power BI. Desde Q2BSTUDIO, expertos en servicios de inteligencia de negocio, se enfatiza la importancia de modelar correctamente los datos entrantes para garantizar que los informes sean precisos. Igualmente, las prácticas de ciberseguridad deben aplicarse al validar entradas del usuario (como coordenadas o nombres de ciudad) para evitar inyecciones o accesos no autorizados, un área donde Q2BSTUDIO ofrece servicios de pentesting para garantizar la robustez de las aplicaciones.

Finalmente, el uso de herramientas de IA como asistentes de código (por ejemplo, Claude Pro o Cursor Pro) puede acelerar el aprendizaje y la depuración, pero siempre debe complementarse con la verificación personal. AI puede sugerir cambios que no siempre son correctos, como afirmaciones falsas sobre compatibilidad de versiones de paquetes. En lugar de aceptarlas ciegamente, es mejor ejecutar comandos como npm info para confirmar los peer dependencies. Esta cultura de verificación autónoma es la que fomenta el crecimiento profesional, y es la misma que aplican los equipos de Q2BSTUDIO al desarrollar agentes IA o soluciones de automatización de procesos para sus clientes.

En resumen, construir una CLI del clima con TypeScript es mucho más que un ejercicio académico: es una oportunidad para poner en práctica principios de diseño de tipos, manejo asíncrono, testing aislado y verificación crítica de información. Estos mismos principios son los que sustentan el desarrollo de aplicaciones a medida en entornos empresariales, donde la precisión, la seguridad y la escalabilidad son requisitos innegociables. Si tu organización busca adoptar estas buenas prácticas o necesita una solución personalizada, no dudes en contactar a expertos en IA para empresas que puedan guiar el proceso con experiencia real.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat