API погоды
Реализуйте API для получения погоды в заданном городе на заданную дату.
Выберите несколько городов, для которых будете собирать погоду. Продумайте структуру хранения данных о погоде в базе данных (город, дата, температура, влажность, скорость ветра, осадки). Информация о погоде должна собираться парсером со сторонних источников (например, сайта погоды) и сохраняться в базу данных.
Основные возможности проекта
- API для получения погоды в заданном городе на заданную дату.
- Парсер для автоматического сбора данных о погоде со сторонних источников.
Парсер
Необходимо реализовать парсер, который будет забирать информацию о погоде со сторонних источников (например, сайта погоды). Парсер должен:
- Загружать страницу с прогнозом погоды для выбранных городов.
- Извлекать из HTML-кода данные: температуру, влажность, скорость ветра, осадки.
- Сохранять полученные данные в базу данных.
Парсер должен запускаться автоматически по расписанию (например, раз в день) или вручную через админ-панель.
Структура API
API должен принимать GET-запросы и возвращать информацию о погоде в формате JSON. Пример запроса:
- /api/weather?city=Moscow&date=2025-12-31 - возвращает погоду в Москве на 31 декабря 2025 года.
Формат ответа
Ответ возвращается в формате JSON. Пример ответа:
- city - название города.
- date - дата.
- temperature - температура (в градусах Цельсия).
- humidity - влажность (в процентах).
- wind_speed - скорость ветра (в м/с).
- precipitation - осадки (например, "солнечно", "дождь", "снег").
Ошибки
При некорректных запросах API должен возвращать ошибки:
- Город не найден - "city not found".
- Дата не найдена в базе - "date not found".
Админ-панель
В админ-панели должны быть реализованы следующие функции:
- Просмотр всех сохраненных данных о погоде.
- Ручной запуск парсера для обновления данных.
- Редактирование данных о погоде вручную (при необходимости).
- Добавление новых городов для сбора данных.