Микросервис для управления комментариями в системе esclient. Использует gRPC для взаимодействия между микросервисами и PostgreSQL для хранения данных.
- Создание комментариев
- Редактирование комментариев
- Удаление комментариев
- Получение списка комментариев
- Python 3.13+ - основной язык разработки
- gRPC - межсервисное взаимодействие
- PostgreSQL - база данных
- PDM - управление зависимостями
- Docker - контейнеризация
┌─────────────────┐
│ gRPC Handler │ ← Обработка gRPC запросов
├─────────────────┤
│ Service Layer │ ← Бизнес-логика
├─────────────────┤
│ Repository Layer│ ← Работа с базой данных
├─────────────────┤
│ PostgreSQL │ ← Хранение данных
└─────────────────┘
- Проверка входных данных
- Сохранение в базу данных с автоматической датой создания
- Возврат ID созданного комментария
- Проверка существования комментария
- Обновление текста и времени редактирования
- Возврат статуса операции
- Проверка существования комментария
- Удаление комментария
- Возврат статуса операции
- Получение списка комментариев по ID мода
- Python 3.13+
- PDM (Python Dependency Manager)
- Just
- Protobuf (Protocol Buffer Compiler Installation)
- PostgreSQL
- Docker
- Клонируем репу:
git clone https://github.com/esclient/comment-service
cd comment-service- Устанавливаем зависимости через pdm:
pdm install-
Активируйте вирт. окружение (вирт. окружение pdm активирует сам)
-
Настройте окружение
-
Запустите Docker Desktop
-
Запустите сервер:
just runСервис использует переменные окружения для конфигурации. Все настройки в файле .env:
# Настройки базы данных
DATABASE_URL=postgresql://user:password@host:port/database
# Настройки сервера
HOST=0.0.0.0
PORT=7777
# Настройки логирования
LOG_LEVEL=INFO
LOG_FORMAT=%(asctime)s %(levelname)-8s [%(name)s] %(message)s
LOG_DATEFMT=%Y-%m-%d %H:%M:%S| Параметр | Описание | Пример |
|---|---|---|
DATABASE_URL |
Строка подключения к PostgreSQL | postgresql://user:pass@host:5432/db |
HOST |
IP адрес для привязки сервера | 0.0.0.0 |
PORT |
Порт для gRPC сервера | 7777 |
LOG_LEVEL |
Уровень логирования | INFO, DEBUG, WARNING |
# Запуск всех проверок сразу
just lint
# Автоматическое исправление форматирования
just format# Все тесты
just test