Современное FastAPI приложение для разработчиков с полным набором инструментов для разработки, тестирования и мониторинга.
- Python 3.12
- FastAPI - современный веб-фреймворк
- SQLAlchemy - ORM для работы с базой данных
- Alembic - система миграций
- Pydantic - валидация данных
- Poetry - управление зависимостями
- Docker - контейнеризация
- Prometheus - мониторинг
- OpenTelemetry - трассировка
- Sphinx - документация
- Python 3.12+
- Poetry
- Docker и Docker Compose
- Make или Just
- Клонируйте репозиторий:
git clone https://github.com/your-username/mcp-developer.git
cd mcp-developer- Установите зависимости через Poetry:
poetry install- Создайте файл
.envна основе.env.example:
cp .env.example .env- Настройте переменные окружения в файле
.env
# Активация виртуального окружения
poetry shell
# Запуск приложения
uvicorn src.app.main:app --reloaddocker-compose up -dПосле запуска приложения документация доступна по адресам:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
# Запуск тестов
pytest
# Запуск тестов с покрытием
pytest --cov=src
# Запуск линтеров
poetry run pre-commit run --all-filessrc/
├── app/
│ ├── api/ # API эндпоинты
│ ├── core/ # Базовая логика
│ ├── db/ # Работа с БД
│ ├── models/ # SQLAlchemy модели
│ ├── repositories/ # Репозитории
│ ├── schemas/ # Pydantic модели
│ ├── services/ # Бизнес-логика
│ └── main.py # Точка входа
├── tests/ # Тесты
└── docs/ # Документация
- Black - форматирование кода
- isort - сортировка импортов
- mypy - статическая типизация
- ruff - линтер
- pre-commit - git хуки
- commitizen - стандартизация коммитов
- Prometheus метрики доступны по адресу: http://localhost:8000/metrics
- Jaeger UI для просмотра трейсов: http://localhost:16686
- Создайте ветку для новой функциональности
- Внесите изменения
- Запустите тесты и линтеры
- Создайте Pull Request
Проект использует just для автоматизации задач разработки. Все команды логируются в файл justfile.log.
justjust install- Проверяет версию Python
- Устанавливает Poetry
- Устанавливает зависимости
- Настраивает pre-commit хуки
just update- Обновляет poetry.lock
- Переустанавливает зависимости
just run- Автоматическая перезагрузка при изменениях
- Логирование в консоль
just test- Запускает pytest
- Генерирует отчет о покрытии
just test-cov- Запускает pytest с coverage
- Минимальное покрытие: 95%
just coverage- Генерирует HTML отчет
- Открывает отчет в браузере
just clean- Удаляет pycache
- Удаляет .pytest_cache
- Удаляет .coverage
- Удаляет .ruff_cache
just fmt- Запускает isort для сортировки импортов
- Запускает black для форматирования
- Запускает ruff format
- Создает бэкап перед форматированием
just typecheck- Запускает mypy в строгом режиме
- Проверяет все Python файлы
- Генерирует отчет об ошибках
just lint- Запускает ruff check
- Проверяет стиль кода
- Проверяет безопасность
just docker-build- Собирает multi-stage образ
- Оптимизирует размер
- Использует кэширование слоев
just docker-up- Запускает все сервисы
- Настраивает сети
- Проверяет здоровье
just docker-down- Останавливает все сервисы
- Удаляет сети
- Очищает тома
just docker-logs- Показывает логи всех сервисов
- Поддерживает фильтрацию
- Автоматическое обновление
just docs-build- Генерирует HTML из RST
- Собирает API документацию
- Проверяет ссылки
just docs-serve- Запускает локальный сервер
- Автоматическая перезагрузка
- Поддержка поиска
just security-check- Проверяет уязвимости в пакетах
- Обновляет базу данных уязвимостей
- Генерирует отчет
just security-scan- Запускает bandit
- Проверяет безопасность кода
- Генерирует отчет
just test- Запускает pytest
- Использует pytest-xdist
- Генерирует отчет
just test-cov- Запускает pytest с coverage
- Проверяет минимальное покрытие
- Генерирует HTML отчет
just test-one TEST_PATH=path/to/test.py- Запускает указанный тест
- Поддерживает отладку
- Показывает подробный вывод
just test-debug- Включает подробный вывод
- Останавливается на ошибках
- Показывает переменные
just db-migrate MESSAGE="описание миграции"- Генерирует миграцию из моделей
- Добавляет описание
- Проверяет корректность
just db-upgrade- Применяет все миграции
- Проверяет статус
- Логирует изменения
just db-downgrade- Откатывает последнюю миграцию
- Проверяет статус
- Логирует изменения
MIT