Проект собирает каждую минуту цены BTC/USD и ETH/USD с биржи Deribit и сохраняет их в базу данных PostgreSQL. Предоставляет API для получения данных:
- Последняя цена валюты
- Вся история валюты
- История с фильтром по дате
Все методы GET и требуют обязательный query-параметр ticke
testprojcert/
/app:
/cleent:
deribit_client.py # получение данных
celery_app.py # собирает данные каждую минуту
database.py # база данных и запросы
main.py # API
tasks.py # создание задачи
requirements.txt # библионтеки для запуска
- Установить Python и виртуальное окружение
python3 -m venv venv
source venv/bin/activate- Установить зависимости
pip install -r requirements.txt- Установи PostgreSQL локально.
- Создай базу данных и пользователя:
CREATE DATABASE crypto_db;
CREATE USER user WITH PASSWORD password;
GRANT ALL PRIVILEGES ON DATABASE crypto_db TO user;- Обнови файл app/database.py:
DATABASE_URL = "postgresql://user:password@localhost:5432/crypto_db"-
Для запуска Celery нужне Redis, так что у бедитесь что он у вас установлен
-
Запуск Celery:
celery -A celery_app beat --loglevel=info- Запрос истории:
GET /price- Запрос последний цены:
GET /prices/latest- Запорс по времени:
GET /prices/filterВсе запросы используют query-параметр ticker.
- Время хранится в UNIX timestamp
- Каждая запись содержит:
ticker— BTC или ETHprice— ценаtimestamp— время в ms
Все методы GET