Данный шаблон содержит базовую структуру микросервиса для быстрого старта разработки:
-
FastAPI приложение:
- Маршрутизаторы в
src/app/routers - Модели Pydantic в
src/app/schemas - Пример API эндпоинта в
src/app/routers/api/hello_world.py
- Маршрутизаторы в
-
MongoDB интеграция:
- Подключение через Beanie ODM
- Инициализация базы данных в
src/core/database/registry.py
-
Конфигурация:
- Настройки через переменные окружения в
src/core/settings_model.py - Логирование через Loguru в
src/core/logs/handlers.py - Обработка ошибок в
src/core/errors.py - Аутентификация микросервисов в
src/app/depends/auth.py
- Настройки через переменные окружения в
-
Докеризация:
Dockerfileдля продакшенаdev.Dockerfileдля разработкиdocker-compose.ymlдля запуска сервисаdocker-compose-test.ymlдля запуска тестов
-
Инструменты разработки:
- Python 3.13
- uv для управления зависимостями
- pytest для тестирования
- ruff для линтинга и форматирования
- mypy для проверки типов
- ty для проверки типов (от Astral)
- just для автоматизации команд
- pre-commit для авто-использования ruff
-
Настройки проекта:
- Обновить имя и описание проекта в
pyproject.toml
- Обновить имя и описание проекта в
-
Настройки базы данных:
- Настроить MongoDB URL, имя БД и путь к сертификату в переменных окружения
- Добавить модели документов Beanie в
initialize_database()вsrc/core/database/registry.py
-
Аутентификация:
- Настроить API ключи микросервисов в переменных окружения
-
Разработка API:
- Создать необходимые маршрутизаторы в
src/app/routers - Добавить модели схем в
src/app/schemas - Реализовать бизнес-логику в
src/core
- Создать необходимые маршрутизаторы в
MONGO__URL=mongodb://user:password@mongodb:27017
MONGO__DB_NAME=your_db_name
MONGO__CERT_FILE_PATH=/path/to/cert.pem (опционально)
MICROSERVICES__KEY=your-secret-keyУстановка just:
brew install just # macOS
cargo install just # или через CargoСписок всех доступных команд:
justОсновные команды:
just check # Запустить ruff check
just fix # Запустить ruff check с автоисправлением
just format # Отформатировать код
just lint # Запустить все проверки линтера
just lint-fix # Исправить все проблемы линтера
just mypy # Запустить mypy
just ty # Запустить ty (проверка типов от Astral)
just test # Запустить тесты
just test-v # Тесты с подробным выводом
just test-file <file> # Запустить конкретный тестовый файл
just test-module <module> # Запустить тесты модуля (tests/<module>)
just pre-commit # Проверить всё перед коммитом (lint + mypy + ty)
just fix-and-check # Исправить и проверить
just all # Алиас для fix-and-check
just all-test # fix-and-check + тестыruff check
ruff format
mypy .
ty check .
pre-commit install
uv sync