Перейти к основному контенту

Sc.SenseTower.Helps

Sc.SenseTower.Helps

1. Назначение сервиса и зона ответственности

Сервис Sc.SenseTower.Helps отвечает за управление объектами помощи. Он предоставляет API для создания, получения, обновления и удаления объектов помощи, а также включает функциональность для проверки состояния сервиса и получения информации о версии.

2. Архитектура и взаимодействия

Сервис построен на основе ASP.NET Core и использует паттерн CQRS с библиотекой MediatR для обработки запросов. Взаимодействие с базой данных осуществляется через Entity Framework Core и MongoDB. Сервис также интегрирован с RabbitMQ для обработки сообщений.

3. API/эндпоинты

  • GET /helps — Получить список объектов помощи.
  • GET /helps/count — Получить количество объектов помощи.
  • GET /helps/{id} — Получить объект помощи по ID.
  • POST /helps — Создать объект помощи.
  • PUT /helps — Полное обновление объекта помощи.
  • PATCH /helps/{id} — Частичное обновление объекта помощи.
  • DELETE /helps/{id} — Удаление объекта помощи.
  • GET /serviceinfo/version — Получение версии сервиса.
  • GET /serviceinfo/health — Проверка работоспособности сервиса.

4. Сборка/запуск

Сервис можно собрать и запустить с помощью .NET SDK. Для этого необходимо выполнить следующие команды:

dotnet build
dotnet run

Также доступен Dockerfile для контейнеризации приложения.

5. Конфигурация

Конфигурация сервиса осуществляется через файлы appsettings.json и appsettings.Development.json. Основные переменные окружения включают:

  • PORT — Порт, на котором будет запущен сервис.
  • Настройки для подключения к RabbitMQ и MongoDB.

6. Наблюдаемость/логирование/метрики

Сервис использует встроенные механизмы логирования через ILogger. Также предусмотрены middleware для логирования HTTP-запросов и статистики. Метрики могут быть собраны через интеграцию с системами мониторинга.

7. Риски и TODO для следующего техдиректора

  • Риски: Возможные проблемы с производительностью при большом количестве запросов к базе данных. Необходима оптимизация запросов и индексация.
  • TODO:
    • Рассмотреть возможность добавления автоматического тестирования.
    • Улучшить обработку ошибок и исключений.
    • Провести аудит безопасности, особенно в части аутентификации и авторизации.

ARCHITECTURE — Sc.SenseTower.Helps

Обзор

  • Путь: D:/Repository/sense-documentaion/Sense-Capital/Sc.SenseTower.Helps
  • Языки: —
  • Фреймворки: —
  • Unity: нет
  • Хранилища: —
  • Брокеры: —
  • Файлов: 143; LOC (оценка): C#: ~3849, JavaScript: ~395

Диаграммы

container.mmd

flowchart LR
  user([User]) --> app[Sc.SenseTower.Helps App]

Structurizr DSL: D:/Repository/sense-documentaion/Sense-Capital/Sc.SenseTower.Helps/docs/diagrams/workspace.dsl