Простий навчальний веб-сервіс на Java + Spring Boot, який отримує погоду з API та показує її у браузері.
- отримання поточної погоди для обраного міста;
- кешування останніх погодних даних на сервері;
- автооновлення даних за розкладом (кожні 10 хвилин);
- REST API для фронтенду;
- веб-сторінка зі сповіщеннями (toast / браузерні notifications).
- Java 21
- Spring Boot 3.3.0
- Maven
- OpenWeather API
src/main/java/com/weather/WeatherApplication.java- точка входуsrc/main/java/com/weather/WeatherService.java- логіка отримання і кешування погодиsrc/main/java/com/weather/WeatherController.java- REST API (/api/...)src/main/java/com/weather/WeatherData.java- модель погодних данихsrc/main/resources/application.properties- конфігураціяsrc/main/resources/static/index.html- UI сторінка
- встановлений JDK 21;
- налаштований Project SDK в IntelliJ;
- доступ до інтернету для запитів до погодного API.
Відкрий src/main/resources/application.properties і вкажи свої значення:
weather.city=Dnipro - місто за замовченням
weather.api.key=YOUR_API_KEY - діючий ключ для https://openweathermap.org/
weather.units=metric - відображення температури у градусах Цельсія
server.port=8090 - локальний порт для сервісаРекомендація: не коміть реальний API-ключ у Git.
mvn clean
mvn spring-boot:runПісля запуску:
- UI:
http://localhost:8090 - Статус:
http://localhost:8090/api/status - Погода (JSON):
http://localhost:8090/api/weather
Перевірка, що сервіс працює.
Приклад відповіді:
{
"status": "running",
"message": "Weather Service працює! ✅"
}Повертає останні кешовані погодні дані.
Приклад відповіді:
{
"city": "Dnipro",
"temperature": 18.5,
"description": "ясно",
"icon": "01d",
"humidity": 60,
"windSpeed": 3.5,
"lastUpdated": 1710000000000
}-
401 Unauthorized / Invalid API key- перевір API-ключ;
- згенеруй новий ключ за потреби;
- дочекайся його активації;
- перезапусти сервіс.
-
JDK isn't specified for module 'weather-service'- в IntelliJ:
File -> Project Structure -> Project SDK; - для модуля:
Project Structure -> Modules -> weather-service -> Dependencies -> Module SDK.
- в IntelliJ:
-
Could not find or load main class com.weather.WeatherApplication- онови Maven-проєкт (
Reload All Maven Projects); - перевір Run Configuration (Main class і module classpath).
- онови Maven-проєкт (