Skip to content

aiohttp-клиент для криптобиржи Deribit и FastAPI-сервис для управления сохраненными данными

Notifications You must be signed in to change notification settings

alexpro2022/crypto-FastAPI

Repository files navigation

Crypto Deribit

Crypto Deribit Test Suite codecov

aiohttp-клиент для криптобиржи Deribit

Тестовое задание


Оглавление:


Технологии:

Подробнее

Python asyncio datetime http logging typing Pytest-asyncio

aiohttp APScheduler FastAPI Pydantic SQLAlchemy Alembic asyncpg

docker_compose PostgreSQL Nginx GitHub_Actions

⬆️Оглавление


Описание работы:

Приложение состоит из:

  1. aiohttp-клиента для криптобиржи Deribit
    • каждую минуту клиент забирает с биржи текущую цену BTC и ETH и сохраняет в базу данных тикер валюты, текущую цену и время в UNIX.
  2. API-сервиса для обработки сохраненных данных на FastAPI - реализует следующие GET-методы:
    • Получение всех сохраненных данных по указанной валюте
    • Получение последней цены валюты
    • Получение цены валюты с фильтром по дате

У каждого метода есть обязательный query-параметр ticker, обозначающий трехсимвольный код валюты, например BTC или ETH

⬆️Оглавление


Установка и запуск:

Удобно использовать принцип copy-paste - копировать команды из GitHub Readme и вставлять в командную строку Git Bash или IDE (например VSCode).

Предварительные условия

Предполагается, что пользователь установил Docker и Docker Compose на локальной машине или на удаленном сервере, где проект будет запускаться в контейнерах. Проверить наличие можно выполнив команды:

docker --version && docker-compose --version

Локальный запуск: Docker Compose
  1. Клонируйте репозиторий с GitHub и введите данные для переменных окружения (значения даны для примера, но их можно оставить):
git clone https://github.com/alexpro2022/crypto-FastAPI.git && \
cd crypto-FastAPI && \
cp env_example .env && \
nano .env
  1. Из корневой директории проекта выполните команду:
docker compose -f infra/local/docker-compose.yml up -d --build

Проект будет развернут в трех docker-контейнерах db, web, nginx по адресу http://localhost.

Администрирование приложения может быть осуществлено через Swagger доступный по адресу http://localhost/docs.

  1. Остановить docker и удалить контейнеры можно командой из корневой директории проекта:
docker compose -f infra/local/docker-compose.yml down

Если также необходимо удалить тома базы данных, статики и медиа:

docker compose -f infra/local/docker-compose.yml down -v

⬆️Оглавление


Удаление:

Из корневой директории проекта выполните команду:

cd .. && rm -fr crypto-FastAPI

⬆️Оглавление


Автор:

Aleksei Proskuriakov

⬆️В начало

About

aiohttp-клиент для криптобиржи Deribit и FastAPI-сервис для управления сохраненными данными

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published