Получение данных с публичного API OpenWeatherMap¶
В этом примере рассматривается процесс получения данных с публичного API общедоступного источника открытых данных - погодного сервиса OpenWeatherMap.
Введение¶
OpenWeatherMap использует платный API (есть функционально ограниченный бесплатный доступ), чтобы предоставить данные текущей погоды, прогноза и карт с погодными явлениями, такими как облака, ветер, давление и осадки. Все погодные данные могут быть получены в форматах JSON, XML или HTML. В этом примере мы воспользуемся бесплатным доступом к сервису для демонстрации возможностей и инструментов такой работы.
Начало работы¶
Работа с API на языке Julia может быть выполнена с использованием пакета HTTP.jl, который предоставляет удобные функции для отправки HTTP-запросов и обработки ответов.
Для начала установим библиотеки HTTP.jl и JSON3.jl для работы с JSON-данными:
import Pkg; Pkg.add(["HTTP", "JSON3"]);
Отправка GET-запроса¶
Теперь напишем код для отправки GET-запроса к API OpenWeatherMap:
Для работы программы Вам необходимо указать в переменной
api_key
свой токен API для доступа к сервису.
using HTTP, JSON3
# Ваш API ключ от OpenWeatherMap
api_key = "введите Ваш API токен";
# Интересующий город
city = "Moscow,ru";
# URL для запроса
url = "http://api.openweathermap.org/data/2.5/weather?q=$city&APPID=$api_key&units=metric";
# Отправка GET-запроса
response = HTTP.get(url);
Здесь мы используем HTTP.get(url)
для отправки GET-запроса к API.
Извлечение полученных данных¶
Теперь проверяем статус ответа: если статус равен 200, значит запрос успешен.
Далее мы используем функцию JSON3.read(response.body)
для парсинга JSON-ответа.
Таким образом мы извлекаем и выводим информацию о погоде из полученных данных.
# Проверка статуса ответа
if response.status == 200
# Парсинг JSON-ответа
data = JSON3.read(response.body)
# Извлечение и вывод информации о погоде
println("Сегодня: $(Date(now()))")
println("Погода в городе $(data.name):")
println("Температура: $(data.main.temp)°C")
println("Влажность: $(data.main.humidity)%")
println("Описание: $(data.weather[1].description)")
else
println("Ошибка при запросе: статус $(response.status)")
end
Далее выведем в печать весь полученный JSON3
объект:
println("$data")
Эти данные доступны для работы в рамках бесплатного доступа к сервису OpenWeatherMap.
Заключение¶
Это базовый пример работы с API для получения данных из открытых источников в Engee. В зависимости от конкретного API, с которым Вы работаете, Вам может потребоваться адаптировать код для обработки различных типов запросов и ответов.