Экономная реализация прогноза погоды на стороннем API Данил Пистолетов, 04 января 202417 мая 2024 Экономная реализация прогноза погоды на стороннем API для использования, например, в ботах на Python для Telegram, как сервис на сайтах или для других целей. Статья чисто теоретическая, затрагивающая преимущественно экономическую сторону вопросу. Может быть полезна для реализации на практике, сам я, когда искал подобное, не нашёл ничего на эту тему, потому решил написать сам. Допустим, у нас есть цель реализовать получение прогноза погода именно с помощью стороннего API, а не каким-нибудь парсером или иными средствами. Использование чужих прогнозов погоды с помощью API сравнительно дорогое удовольствие, потому было бы неплохо реализовать это без лишних затрат. Иностранные программные интерфейсы (API) нам сейчас по большей части недоступны из-за отключения от SWIFT, потому для примера были взяты услуги Яндекса. API прогнозов погоды предоставляет не только Яндекс, но и, например, Gismeteo, однако у них точная стоимость тарифов не указана. Самый дешёвый тариф у Яндекса, не считая погоды на сайте и тестового, которые предоставляются бесплатно с посильными ограничениями — «Коммерческий». Он стоит в настоящий момент от 30000 рублей, позволяя делать от 1,5 миллиона запросов в месяц, прогноз на 10 дней вперёд [1]. Таким образом, мы можем за один запрос получать данные на 10 дней вперёд, собирать их в какую-нибудь базу данных, и использовать в дальнейшем. По некоторым данным, в России 155454 населённых пункта [2]. Таким образом, чтобы за месяц (точнее, 30 дней) получить данные по каждому из них, нужно 155 454 * 3= 466 362 запросов. Это даже не половина от тарифа, что позволяет нам запрашивать ещё, например, города Казахстана, Беларуси и некоторых других ближайших стран, где велик процент русскоязычного населения. Собирать данные по каждому населённому пункту заранее, то есть массово их собирать каждые 10 дней — нецелесообразно, поскольку вряд ли вашим сервисом будет пользоваться житель каждого населённого пункта. Их разумнее хранить по мере использования, отдавая пользователям сохранённые данные, ибо запросы одних и тех же населённых пунктов, а тем более массовые, могут израсходовать весь лимит. В идеале либо парсить эти данные с сайтов погоды, либо найти варианты с использованием json-запросов на сайтах погоды, но если всё-таки есть нужда в реализации именно через сторонний API, описанная система будет наиболее разумной, позволяющей не делать бесполезные запросы и не тратить зря лимит, если он имеется. Использованные источники: 1. Тарифы доступа к API // Яндекс : сайт. – URL: https://yandex.ru/dev/weather/doc/dg/concepts/pricing.html#about (дата обращения: 04.01.2024) 2. Сколько в России населённых пунктов (городов, деревень, сёл, аулов)? // Большой вопрос : сайт. – URL: http://www.bolshoyvopros.ru/questions/4307945-skolko-v-rossii-naseljonnyh-punktov-gorodov-dereven-sjol-aulov.html (дата обращения: 04.01.2024) Статьи