Skip to content

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

 
 
 

Contributors

Languages

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