Міні документація
Запит на отримання погоди по назві міста (http://localhost/api/v1/weather)
{"city":"London"}
Без API, запит можна зробити із головної сторінки
http://localhost
Інструкція встановлення та налаштування
В корні проєкта є make file, для запуска через нього потрібно мати docker.
Для запуска проєкта:
make start
Для остановки проєкта:
make stop
Використовуючи docker або без нього, в середовище де підтримується php в корні проєкта потрібно виконати:
composer install
Після установки усіх бібліотек, потрібно відредагувати .env файл:
WEATHER_API_KEY=999e282b1780486a90830854253004
Потрібно замінити на актуальний ключ (цей створений 29.04.2025).
Запуск модульного теста:
./vendor/bin/phpunit tests/
Пояснення
Так як потрібно було показати в twig результат та мати API ендпоінт, то у мене два контролерра: ApiController та WeatherController. По умовах створенно WeatherService класс, для обробки комунікації із API. Додатково створенно:
- HttpClientService
- LogService
- ValidatorWeatherService В HttpClientService реалізована взаємодія із curl для отримання даних з API. В LogService реалізована робота із логуванням В ValidatorWeatherService винесено все що стосується до валідації запиту на пошук. Зроблено для дотримання поділу відповідальності. Мінімальний Css винесено до public/assets/css/style.css