Сервис для предоставления данных по REST API для проекта prototyper
Скачайте проект:
git clone --recurse-submodules https://
Для настройки проекта для локальной разработки выолните следующие шаги:
-
Создать файл .env.dev и поместить в него переменные полученныe от разработчка Пример - example.env.dev
-
Запустить проект:
- Для Linux:
sudo docker compose up -d --build
- Для Windows (docker desktop)
docker-compose up -d --build
- Установить python зависимости локально, для корректной работы среды разработки:
-
Установить python==3.12 и pip
-
Установить poetry (https://python-poetry.org/docs/)
-
Выполнить команды:
poetry config virtualenvs.in-project true
poetry install
- В своей ide указать интерпретатор ./venv/bin/python
Для тестирования Создать файл .env.test и поместить в него переменные полученныe от разработчка Пример - example.env.test
- Прогон тестов:
sudo docker compose -f ./docker-compose.local-tests.yml up --build test
Для Windows (docker desktop)
docker-compose -f ./docker-compose.local-tests.yml up --build test
- Прогон линтеров:
sudo docker compose -f ./docker-compose.local-tests.yml up --build lint
или локально через poetry:
poetry run isort .
poetry run black .
poetry run ruff check
poetry run mypy .
portru run flake8 ./src
Для Windows (docker desktop)
docker-compose -f ./docker-compose.local-tests.yml up --build lint
- Тестирование на производительность
poetry run locust -f ./tests/perfomance/locust/locustfile.py
Логи пишутся в файл loguru.log в корне проекта. Чтобы настроить уровни логирования необходимо изменить перменную LOGGER_LEVELS в .env.*.
LOGGER_LEVELS='["INFO","DEBUG","ERROR","WARNING"]' Убрать один из елементов массива выше.
Consumers отдают метрики по адресу localhost:8002/metrics
Dashboard для импорта в Graphana для метрик по консумерам
- docs/graphana/faststream_dashboard.json
Rest Api отдает метрики по адресу localhost:8000/metrics
Dashboard для импорта в Graphana для метрик по api
- docs/graphana/fastapi_dashboard.json
Для получение данных реализовано REST API.
Документация (swagger) c описанием методов и примерами данных для запросов располагается по адресу http://localhost:8000/docs
Реализованы следующие методы: