Skip to content
/ ms-template Public template
forked from barabum0/fastapi-template-uv

Template for FastAPI applications with uv, mypy and ruff. Loguru and Pytest included!

Notifications You must be signed in to change notification settings

suvvyai/ms-template

 
 

Repository files navigation

Репозиторий-шаблон для микросервисов внутри Савви

Использовать этот шаблон

Содержание шаблона

Данный шаблон содержит базовую структуру микросервиса для быстрого старта разработки:

Основная структура

  • 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

Что нужно изменить для использования

  1. Настройки проекта:

    • Обновить имя и описание проекта в pyproject.toml
  2. Настройки базы данных:

    • Настроить MongoDB URL, имя БД и путь к сертификату в переменных окружения
    • Добавить модели документов Beanie в initialize_database() в src/core/database/registry.py
  3. Аутентификация:

    • Настроить API ключи микросервисов в переменных окружения
  4. Разработка 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

Установка 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 + тесты

Команды без just

ruff check
ruff format
mypy .
ty check .
pre-commit install
uv sync

About

Template for FastAPI applications with uv, mypy and ruff. Loguru and Pytest included!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 72.0%
  • Just 15.3%
  • Dockerfile 12.7%