Ресурсы предоставляющие данные о прогнозе погоды для дальнейшей интеграции в собственные проекты.
- https://open-meteo.com/
- https://www.weatherapi.com/
- https://wttr.in/ . Без регистрации и API ключей JSON, текст, HTML формат Пример:
https://wttr.in/Орёл?format=j1
Мы будем использовать
https://open-meteo.com/
Описание полей:
| Поле | Тип | Описание |
|---|---|---|
temperature | Float | Текущая температура воздуха на высоте 2м |
apparentTemperature | Float | Ощущаемая температура (с учетом ветра) |
humidity | Int | Относительная влажность воздуха (0-100%) |
precipitation | Float | Общее количество осадков за период (мм) |
rain | Float | Только дождь (мм) |
showers | Float | Ливни (мм) |
snowfall | Float | Снег (см) |
weatherCode | Int | WMO код погоды (0=ясно, 45=туман, 61=дождь и т.д.) |
cloudCover | Int | Процент облаков (0-100%) |
isDay | Boolean | true=день, false=ночь |
API запрос будет выглядеть так:
Здесь делаем подмену координат, на координаты города, данные которого мы хотим получить
Иконки
https://bas.dev/work/meteocons
https://erikflowers.github.io/weather-icons
https://www.amcharts.com/free-animated-svg-weather-icons
Схема Prisma
model Weather {
id Int @id @default(autoincrement())
cityId Int
city City @relation(fields: [cityId], references: [id], onDelete: Cascade)
// Основные метеопараметры
temperature Float // Температура (°C)
apparentTemperature Float? // Ощущаемая температура (°C)
humidity Int // Влажность (%)
// Осадки
precipitation Float? // Общее количество осадков (мм)
rain Float? // Дождь (мм)
showers Float? // Ливни (мм)
snowfall Float? // Снег (см)
// Состояние неба и облаков
weatherCode Int // Код погоды (WMO)
cloudCover Int? // Облачность (%)
// Дополнительная информация
isDay Boolean? // День или ночь
gmt String? // Часовой пояс (например: +3, +5, +7)
createdAt DateTime @default(now())
@@index([cityId])
@@index([createdAt])
@@map(“weather”)
}
Пример записей в БД

