Ir al contenido
Tutorial

API meteorológica gratuita con calidad del aire en una sola llamada

| 6 min read

Una clave API, dos puntos finales y una función Node.js de 40 líneas que devuelve la temperatura actual y PM2.5 para cualquier ciudad. Sin actualización de nivel de producto.

City skyline with haze representing weather and air quality data
Photo by NASA on Unsplash

Estás creando una aplicación de notificación de incendios forestales, un planificador de rutas para correr o un banner de comercio electrónico. que reacciona a la calidad del aire local. Necesita la temperatura actual, las condiciones de lluvia y PM2.5 desde la misma API. Cada proveedor meteorológico popular cubre la calidad del aire detrás de un producto separado nivel, una clave API separada o un contrato empresarial. No deberías tener que pagar $40 al mes para decirle a un usuario si es seguro correr afuera.

La API de botoi te ofrece /v1/weather/current y /v1/air-quality/check en la misma clave gratuita. Dos puntos finales POST, JSON in y JSON y 1000 solicitudes por día una vez que te registras.

Por qué AQI está escondida detrás de un muro de pago

OpenWeatherMap vende su API Air Pollution como una actualización. El plan gratuito cubre el clima actual. y un pronóstico de cinco días, pero la calidad histórica del aire y los límites de llamadas de AQI más altos viven en el Niveles Professional y Enterprise que comienzan en $40 al mes. También llevas una clave API separada por familia de productos, por lo que un proyecto de hobby termina haciendo malabarismos con dos paneles.

WeatherAPI.com anuncia un millón de llamadas gratuitas al mes y las cumple para el clima. La calidad del aire está incluida en el plan Pro. AccuWeather mantiene AQI en su nivel Enterprise con un puerta de llamada de ventas. Tomorrow.io le ofrece una prueba con límites de tarifas lo suficientemente bajos como para que una sola página La actualización consume todo su presupuesto.

Proveedora Llamadas de nivel gratuito ¿AQI libre? autenticación ¿Puntos finales combinados?
publicado 5/min anónimo, 1000/día con clave Una clave para ambos Dos puntos finales POST, una clave
OpenWeatherMap 1000/día No (actualización paga) Clave separada por producto No, dividido entre productos
WeatherAPI.com ~1 millón/mes No (nivel Pro) Una llave, puerta Pro Punto final único, solo Pro
AccuWeather 50/día de prueba No (Empresa) Controlado por las ventas No

Obtenga el clima actual en un solo rizo

La /v1/weather/current El punto final acepta el nombre de una ciudad, un código postal o una latitud/lon. par. Devuelve temperatura en grados Celsius y Fahrenheit, humedad, velocidad del viento, un texto. condición, una clave de icono que puedes asignar a tu propia hoja de sprites y las coordenadas resueltas.

Respuesta:

Aferrate a la lat y lon campos. Los alimentarás directamente el punto final de calidad del aire para no gastar una segunda llamada de codificación geográfica.

Agregue calidad del aire en un segundo rizo

La /v1/air-quality/check El punto final toma lat/lon y devuelve el valor de aire de la EPA de EE. UU. Índice de calidad, una etiqueta de categoría y las concentraciones de contaminantes individuales. PM2.5 y PM10 son los dos números que interesan a la mayoría de las aplicaciones de salud; el resto cubre ozono, dióxido de nitrógeno, dióxido de azufre y monóxido de carbono para casos de uso más estrictos.

Respuesta:

Un AQI de 62 con una etiqueta de Moderado significa que la mayoría de las personas pueden salir, pero cualquier persona con asma debería tomárselo con calma. El aqi_category El campo le evita tener que agrupar el número. usted mismo y mantiene su copia de UI consistente con el lenguaje oficial de la EPA.

Combina ambos en una sola función de Node.js

La mayoría de las aplicaciones quieren un número por ciudad, no dos viajes de ida y vuelta separados repartidos por todo el mundo. base de código. Esta función de 40 líneas envuelve ambos puntos finales, maneja los tiempos de espera y devuelve un resultado combinado. objeto que puede colocar en cualquier panel.

La función realiza dos llamadas secuenciales porque la segunda necesita coordenadas de la primera. Si ya tiene lat/lon en caché de una solicitud anterior, ejecute ambas llamadas en paralelo con Promise.all y reducir la latencia a la mitad. El nodo 20+ tiene nativo fetch y AbortController, por lo que no necesitas axios ni node-fetch.

Tres usos del mundo real con código

Planificador de rutas para correr

Una aplicación de fitness sugiere rutas al aire libre. Cuando las PM2.5 aumentan o se acerca una tormenta eléctrica, Las sugerencias de ruta deben hacer una pausa y mostrar una alternativa interior. Esta función devuelve uno de tres estados: ir, omitir o aviso.

El retorno de los tres Estados es importante. Un binario sí/no oculta el término medio donde se ejecuta la carrera. Está bien, pero más corto es más inteligente. Los usuarios sensibles aprecian los matices y usted evita frustrar a los corredores experimentados con alertas demasiado cautelosas.

Banner de comercio electrónico para purificadores de aire.

Una tienda de artículos para el hogar vende purificadores de aire. Cuando un visitante llega desde una ciudad con un AQI superior a 100, El producto es realmente útil, así que déjalo a la vista. Cuando el aire esté limpio, esconde la pancarta para que No parece marketing de miedo.

Obtenga las condiciones por su cuenta /api/conditions proxy para que su clave API permanezca en el servidor. Almacene en caché el resultado por ciudad durante 30 minutos en el borde; AQI se mueve lo suficientemente lento esa frescura de media hora está bien para el cartel de una tienda.

ETA de entrega con buffer meteorológico

Una aplicación de entrega muestra una ETA de 25 minutos. Las fuertes lluvias en la ciudad del corredor significan 10 minutos más. Las tormentas significan 20. Agregar el búfer antes de mostrar la ETA evita decepciones clientes que rastrean a un pasajero retrasado.

Mantenga las reglas del buffer simples. Tanto los conductores como los clientes confían en las ETA que aterrizan dentro del ventana, y caminar de 10 a 20 minutos en climas húmedos es más honesto que defensivo.

Límites de tarifas y claves

El acceso anónimo permite 5 solicitudes por minuto y 100 por día, basado en IP. Eso es suficiente para Cree una demostración o conecte un proyecto personal sin registrarse.

Regístrese para obtener una clave gratuita en botoi.com/api para aumentar el límite a 1000 solicitudes por día. La misma clave funciona tanto para el clima como para la calidad del aire, además de más de 190 puntos finales más en la plataforma. Presione un 429 y la API devuelve un Retry-After encabezado en segundos su cliente puede retroceder limpiamente.

Puntos clave

  • /v1/weather/current toma una ciudad, zip o lat/lon y devuelve la temperatura, humedad, viento, una condición de texto y coordenadas.
  • /v1/air-quality/check toma lat/lon y devuelve el AQI de la EPA de EE. UU., una etiqueta de categoría, y lecturas de PM2.5, PM10, O3, NO2, SO2 y CO.
  • Ambos puntos finales comparten una clave API. Todos los demás proveedores cobran más por el AQI o lo ocultan detrás de una puerta empresarial.
  • El nivel gratuito cubre 5 solicitudes anónimas por minuto, 1000 por día con una clave. Las respuestas son almacenado en caché en Cloudflare Workers para una latencia inferior a 100 ms.
  • Almacene en caché el clima durante 15 minutos y el AQI durante 30 minutos en su aplicación. Ninguno se mueve lo suficientemente rápido necesita sondeos en tiempo real, y el almacenamiento en caché lo mantiene dentro del nivel gratuito incluso para aplicaciones pesadas. tableros de instrumentos.

FAQ

¿Qué escala AQI utiliza la API?
El criterio de valoración /v1/air-quality/check devuelve el índice de calidad del aire de la EPA de EE. UU., una escala de 0 a 500 donde 0 a 50 es buena, 51 a 100 moderada, 101 a 150 insalubre para grupos sensibles, 151 a 200 insalubre, 201 a 300 muy insalubre y 301+ peligroso. El campo aqi_category lleva la etiqueta, por lo que no es necesario que guardes el número tú mismo.
¿Qué tan actualizados están los datos meteorológicos?
Las condiciones actuales se actualizan cada hora desde los servicios meteorológicos nacionales. Para la mayoría de los paneles, aplicaciones de notificación y casos de uso de comercio electrónico, las observaciones horarias son lo suficientemente precisas. Si necesita actualizaciones de un minuto para alertas de aviación o de clima severo, almacene en caché de manera menos agresiva y llame a pedido.
¿Funciona por código postal o solo lat/lon?
Ambos. Envíe {"city": "San Francisco"} o {"city": "94107"} a /v1/weather/current y la API lo geocodificará por usted. La respuesta incluye campos de latitud y longitud para que pueda introducirlos directamente en /v1/air-quality/check sin una llamada de codificación geográfica por separado.
¿Existe un punto final por lotes para varias ciudades?
El punto final meteorológico maneja una ciudad por solicitud. Para varias ciudades, utilice Promise.all en el lado del cliente; el nivel gratuito permite 5 solicitudes por minuto, es decir, hasta 5 ciudades por ráfaga. Para trabajos por lotes más pesados, una clave API gratuita aumenta el límite a 1000 solicitudes por día.
¿Qué sucede cuando llego al límite de tasa?
La API devuelve HTTP 429 con un encabezado Retry-After en segundos. Retroceda hasta obtener el valor mostrado y vuelva a intentarlo; la ventana es de un minuto móvil en el acceso anónimo y de un día móvil en el acceso con clave. Maneje 429 explícitamente para no publicar silenciosamente actualizaciones meteorológicas desde su panel de control.

Empieza a construir con botoi

150+ endpoints de API para consultas, procesamiento de texto, generacion de imagenes y utilidades para desarrolladores. Plan gratuito, sin tarjeta de credito.