Sc.SenseTower.Camera
Sc.SenseTower.Camera
1. Назначение сервиса и зона ответственности
Сервис Sc.SenseTower.Camera отвечает за управление камерами в рамках системы. Он предоставляет API для получения информации о камерах, их состоянии, а также для управления их настройками и метаданными. Сервис взаимодействует с облачными ресурсами и использует механизмы аутентификации для обеспечения безопасности.
2. Архитектура и взаимодействия
Сервис построен на основе ASP.NET Core и использует паттерн CQRS с библиотекой MediatR для обработки запросов. Основные компоненты:
- Контроллеры: Обрабатывают HTTP-запросы и взаимодействуют с командами и запросами.
- Сервисы: Реализуют бизнес-логику и взаимодействуют с внешними API (например, Yandex Cloud).
- База данных: Используется MongoDB для хранения данных (настройки, состояния камер и т.д.).
- RabbitMQ: Для обработки событий и взаимодействия с другими сервисами.
3. API/эндпоинты
-
GET /cameras
: Получение списка камер. -
GET /cameras/{id:guid}/state
: Получение состояния камеры. -
GET /cameras/{id:guid}/canStart
: Проверка возможности запуска камеры. -
POST /cameras/{id:guid}
: Обновление информации о камере. -
POST /start
: Запуск экземпляра. -
POST /stop
: Остановка экземпляра. -
POST /setmeta
: Установка метаданных для камеры. -
GET /ServiceInfo/Version
: Получение версии сервиса. -
GET /ServiceInfo/Health
: Проверка работоспособности сервиса.
4. Сборка/запуск
Для сборки и запуска сервиса используется Docker. В корне репозитория находится файл Dockerfile
, который содержит инструкции для создания образа. Для запуска можно использовать Docker Compose, если он настроен.
5. Конфигурация
Конфигурация сервиса осуществляется через файлы appsettings.json
и appsettings.Development.json
, а также через переменные окружения. Основные настройки включают:
-
ServiceEndpointsSettings
: URL-адреса для взаимодействия с другими сервисами. -
MongoDbConfig
: Настройки подключения к MongoDB. -
RabbitMQConnectionSettings
: Настройки для подключения к RabbitMQ. -
IS4Configuration
: Настройки для аутентификации.
6. Наблюдаемость/логирование/метрики
Сервис использует встроенные механизмы логирования ASP.NET Core и предоставляет возможность мониторинга через Health Checks. Логи могут быть настроены для записи в различные источники, включая консоль и файлы.
7. Риски и TODO для следующего техдиректора
-
Риски:
- Зависимость от внешних сервисов (Yandex Cloud) может привести к проблемам при недоступности.
- Необходимость в регулярном обновлении библиотек и зависимостей для обеспечения безопасности.
-
TODO:
- Рассмотреть возможность добавления автоматического тестирования для API.
- Улучшить обработку ошибок и исключений для повышения устойчивости сервиса.
- Документировать API с использованием OpenAPI для упрощения интеграции с другими сервисами.
ARCHITECTURE — Sc.SenseTower.Camera
Обзор
- Путь:
D:/Repository/sense-documentaion/Sense-Capital/Sc.SenseTower.Camera
- Языки: —
- Фреймворки: —
- Unity: нет
- Хранилища: —
- Брокеры: —
- Файлов: 166; LOC (оценка): C#: ~4329, JavaScript: ~394
Диаграммы
container.mmd
flowchart LR
user([User]) --> app[Sc.SenseTower.Camera App]
Structurizr DSL: D:/Repository/sense-documentaion/Sense-Capital/Sc.SenseTower.Camera/docs/diagrams/workspace.dsl
Нет комментариев