Бесплатный API погоды с качеством воздуха за один вызов
Один ключ API, две конечные точки и 40-строчная функция Node.js, которая возвращает текущую температуру и уровень PM2,5 для любого города. Нет обновления уровня продукта.
Вы создаете приложение для оповещения о лесных пожарах, планировщик маршрутов или баннер для электронной коммерции. который реагирует на местное качество воздуха. Вам нужна текущая температура, условия дождя и PM2,5. из того же API. Каждый популярный поставщик метеорологических услуг определяет качество воздуха с помощью отдельного продукта. уровень, отдельный ключ API или корпоративный контракт. Вам не придется платить 40 долларов в месяц, чтобы сообщить пользователю, безопасно ли бегать на улице.
Botoi API дает вам /v1/weather/current и
/v1/air-quality/check на том же бесплатном ключе. Две конечные точки POST: вход JSON и JSON.
Out и 1000 запросов в день после регистрации.
Почему AQI скрыт за платным доступом
OpenWeatherMap продает свой API загрязнения воздуха в качестве обновления. Бесплатный план охватывает текущую погоду и пятидневный прогноз, но историческое качество воздуха и более высокие лимиты вызовов AQI сохраняются на Уровни Professional и Enterprise начинаются с 40 долларов США в месяц. У вас также есть отдельный ключ API. на каждое семейство продуктов, поэтому хобби-проект заканчивается жонглированием двумя панелями мониторинга.
WeatherAPI.com рекламирует миллион бесплатных звонков в месяц, и они это делают для прогноза погоды. Качество воздуха включено в план Pro. AccuWeather сохраняет AQI на уровне Enterprise с помощью ворота для звонков по продажам. Tomorrow.io предлагает вам пробную версию с настолько низкими ограничениями, что одна страница обновление сжигает ваш бюджет.
| Поставщик | Звонки на бесплатном уровне | АКИ бесплатно? | Авторизация | Комбинированные конечные точки? |
|---|---|---|---|---|
| опубликовано | 5/мин анонимно, 1000/день с ключом | Да | Один ключ для обоих | Две конечные точки POST, один ключ |
| OpenWeatherКарта | 1000/день | Нет (платное обновление) | Отдельный ключ для каждого продукта | Нет, разделить по продуктам |
| WeatherAPI.com | ~1 млн/месяц | Нет (уровень Pro) | Один ключ, ворота Pro | Одна конечная точка, только версия Pro |
| AccuWeather | 50/дневная пробная версия | Нет (Предприятие) | Продажа закрыта | Нет |
Получите текущую погоду одним завитком
The /v1/weather/current конечная точка принимает название города, почтовый индекс или широту/долготу.
пара. Он возвращает температуру в градусах Цельсия и Фаренгейта, влажность, скорость ветра, текстовое сообщение.
условие, значок ключа, который вы можете сопоставить со своим собственным листом спрайтов, и разрешенные координаты.
Ответ:
Держись за lat и lon поля. Вы будете кормить их прямо в
конечную точку качества воздуха, чтобы не тратить второй вызов геокодирования.
Добавьте качество воздуха за секунду
The /v1/air-quality/check конечная точка принимает широту/долготу и возвращает воздух Агентства по охране окружающей среды США.
Индекс качества, метка категории и отдельные концентрации загрязняющих веществ. ТЧ2,5 и ТЧ10
эти две цифры волнуют большинство приложений для здоровья; остальное охватывает озон, диоксид азота,
диоксид серы и окись углерода для более строгих случаев использования.
Ответ:
AQI 62 с меткой «Умеренный» означает, что большинство людей могут выходить на улицу, но любой, кто страдает астмой
следует относиться к этому спокойно. aqi_category поле избавит вас от необходимости группировать число
самостоятельно и обеспечивает соответствие копии пользовательского интерфейса официальному языку EPA.
Объедините оба в одной функции Node.js.
Большинству приложений нужен один номер на город, а не два отдельных рейса туда и обратно, разбросанных по всему городу. кодовая база. Эта 40-строчная функция охватывает обе конечные точки, обрабатывает таймауты и возвращает объединенный результат. объект, который вы можете поместить на любую панель мониторинга.
Функция выполняет два последовательных вызова, поскольку второму нужны координаты первого.
Если у вас уже есть кэш широты и долготы из предыдущего запроса, запустите оба вызова параллельно с
Promise.all и сократить задержку вдвое. Узел 20+ имеет встроенный fetch
и AbortController, поэтому вам не нужны axios или выборка узлов.
Три реальных варианта использования кода
Планировщик бегового маршрута
Фитнес-приложение предлагает маршруты на свежем воздухе. Когда PM2,5 резко возрастает или надвигается гроза, предложения маршрутов должны быть приостановлены и показывать альтернативу в помещении. Эта функция возвращает один из три состояния: идти, пропустить или рекомендация.
Возвращение трех государств важно. Бинарное «да/нет» скрывает золотую середину, где бегство это нормально, но короче значит умнее. Чувствительные пользователи ценят нюансы, и вы избегаете расстраивая опытных бегунов слишком осторожными предупреждениями.
Баннер электронной коммерции для очистителей воздуха
В магазине товаров для дома продаются очистители воздуха. Когда посетитель приезжает из города с AQI выше 100, продукт действительно полезен, так что расскажите о нем. Когда воздух станет чистым, спрячьте баннер, чтобы он не похоже на страх перед маркетингом.
Получите условия у себя /api/conditions прокси, чтобы ваш ключ API оставался
на сервере. Кэшируйте результат по городам на 30 минут на краю; AQI движется достаточно медленно
эта получасовая свежесть вполне подойдет для баннера на витрине.
Расчетное время доставки с погодным буфером
Приложение доставки показывает расчетное время прибытия за 25 минут. Сильный дождь в городе гонщика означает еще 10 минут. Грозы означают 20. Добавление буфера перед отображением расчетного времени прибытия предотвращает разочарование. клиенты отслеживают опоздавшего пассажира.
Правила буферизации должны быть простыми. Водители и клиенты доверяют ETA, которые прибывают в пределах окно, а прокладка на 10–20 минут в сырую погоду — это скорее честно, чем оборонительно.
Ограничения ставок и ключи
Анонимный доступ допускает 5 запросов в минуту и 100 в день по IP. Этого достаточно, чтобы создайте демо-версию или подключите личный проект без регистрации.
Зарегистрируйтесь и получите бесплатный ключ на botoi.com/api поднять лимит до 1000 запросов
в день. Один и тот же ключ работает как для погоды, так и для качества воздуха, а также для более чем 190 других конечных точек на
платформа. Нажмите 429, и API вернет Retry-After заголовок в секундах, так что
ваш клиент может спокойно отступить.
Ключевые моменты
-
/v1/weather/currentберет город, почтовый индекс или широту/долготу и возвращает температуру, влажность, ветер, текстовое состояние и координаты. -
/v1/air-quality/checkпринимает широту/долготу и возвращает AQI Агентства по охране окружающей среды США, метку категории, и показания PM2,5, PM10, O3, NO2, SO2 и CO. - Обе конечные точки используют один ключ API. Все остальные провайдеры взимают дополнительную плату за AQI или скрывают это. за воротами предприятия.
- Уровень бесплатного пользования охватывает 5 анонимных запросов в минуту и 1000 в день с использованием ключа. Ответы кэшируется на Edge в Cloudflare Workers с задержкой менее 100 мс.
- Кэшируйте погоду на 15 минут и AQI на 30 минут в своем приложении. Ни один не движется достаточно быстро необходимость опроса в реальном времени, а кэширование удерживает вас на бесплатном уровне даже при тяжелых нагрузках. приборные панели.
FAQ
- Какой масштаб AQI использует API?
- Конечная точка /v1/air-quality/check возвращает индекс качества воздуха Агентства по охране окружающей среды США по шкале от 0 до 500, где 0–50 — хорошее, 51–100 — среднее, 101–150 — вредное для чувствительных групп, 151–200 — вредное для здоровья, 201–300 — очень вредное для здоровья и 301+ опасное. Поле aqi_category содержит метку, поэтому вам не нужно собирать число самостоятельно.
- Насколько свежи данные о погоде?
- Текущие условия обновляются ежечасно национальными метеорологическими службами. Для большинства информационных панелей, приложений для уведомлений и сценариев использования электронной коммерции почасовые наблюдения являются достаточно точными. Если вам нужны ежеминутные обновления для авиации или предупреждений о суровых погодных условиях, кэшируйте менее агрессивно и звоните по требованию.
- Это работает по почтовому индексу или только по широте/долготе?
- Оба. Отправьте {"city": "San Francisco"} или {"city": "94107"} в /v1/weather/current, и API геокодирует его за вас. Ответ включает поля широты и долготы, поэтому вы можете передать их прямо в /v1/air-quality/check без отдельного вызова геокодирования.
- Есть ли конечная точка пакетной обработки для нескольких городов?
- Конечная точка погоды обрабатывает один город за запрос. Для нескольких городов используйте Promise.all на стороне клиента; уровень бесплатного пользования допускает 5 запросов в минуту, то есть до 5 городов за пакет. Для более тяжелых пакетных заданий бесплатный ключ API увеличивает ограничение до 1000 запросов в день.
- Что произойдет, когда я достигну предела скорости?
- API возвращает HTTP 429 с заголовком Retry-After через несколько секунд. Отступите на указанное значение и повторите попытку; окно представляет собой скользящую минуту при анонимном доступе и скользящий день при доступе с ключом. Обрабатывайте 429 явно, чтобы вы не удаляли автоматически обновления погоды со своей панели управления.
Начните разработку с botoi
150+ API-эндпоинтов для поиска, обработки текста, генерации изображений и утилит для разработчиков. Бесплатный тариф, без банковской карты.