Микросервис для агрегации данных о погоде, новостях и курсах валют для выбранного города.
- Node.js
- Redis
- API-ключ от GNews
- Клонировать репозиторий и установить зависимости:
git clone https://github.com/Apocfel/CityPulse.git
cd citypulse
npm install
-
Создать файл ".env" в корне проекта. В переменную "NEWS_API_KEY" присвоить значение API ключа от gnews
-
Опционально: Запустить Redis-сервер если необходимо кэширование ответов на запросы
-
Запуск проекта
node app.js
Сервер будет доступен по адресу: http://localhost:3000 В консоли будут тестовые эндпоинты демонстрирующие функциональность
-
GET / - Проверка работы сервера
-
GET /api/cities - Список доступных городов
-
GET /api/feed/:cityId - Все данные для города (основной эндпоинт)
-
GET /api/weather/:cityId - Только погода
-
GET /api/news/:cityId - Только новости
-
GET /api/currency/:cityId - Только курсы валют
- Некоторые сервисы могут быть недоступны в зависимости от расположения сервера и использования VPN.
- В конфигурации (config/cities.js) только 5 городов: Москва, Лондон, Нью-Йорк, Токио и Берлин. Для добавления других городов можно просто дополнить файл в аналогичном формате.
- Данные кэшируются на 5 минут. При необходимости изменения этого параметра следует редактировать параметр ttlSeconds в services/cacheService.js
- Добавление Docker
- Тесты
- Расширение функционала
- Добавление фронт-энда