Получение курсов, кросскурсов Центрального Банка
- Используйте PHP в качестве основного языка программирования.
- На входе: дата, код валюты, код базовой валюты (по умолчанию RUR)
- получать курсы с http://cbr.ru
- на выходе: значение курса и разница с предыдущим торговым днем
- кешировать данные http://cbr.ru
- продемонстрировать навыки работы с брокерами сообщений и реализовать сбор данных с cbr за 180 предыдущих дней с помощью воркера через консольную команду
Источник данных https://www.cbr.ru/development/SXML/
- composer install
copy .env.example to .env
Set .env DB_ settings, then:
- php artisan migrate
Udpate Currency list
- php artisan app:upd-currency-list
Udpate Currency Rate
- php artisan app:upd-currency-rate
Run queue
- php artisan queue:work --queue=high,default
Run server
- php artisan key:generate
- php artisan serve
curl --location 'http://127.0.0.1:8000/get-rate' \
--header 'Content-Type: application/json' \
--data '{
"currency":"USD",
"date":"2024-05-18",
"basecurrency":"RUB"
}'
Использован последний laravel 11 из коробки поэтому php 8.2.
Для парсела использовал пакет andydune/currency-rate-cbr чтобы не озобретать велосипед, сделал форк, добавил новую функцию, добавил на packagist.
Api простое, без валидации данных, для демонстрации.