Skip to content

Сервис для работы с комментариями

Notifications You must be signed in to change notification settings

esclient/comment-service

Repository files navigation

Comment Service

Микросервис для управления комментариями в системе 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

Локальная разработка

  1. Клонируем репу:
git clone https://github.com/esclient/comment-service
cd comment-service
  1. Устанавливаем зависимости через pdm:
pdm install
  1. Активируйте вирт. окружение (вирт. окружение pdm активирует сам)

  2. Настройте окружение

  3. Запустите Docker Desktop

  4. Запустите сервер:

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

About

Сервис для работы с комментариями

Resources

Stars

Watchers

Forks

Contributors 6