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

Sc.Applications

Sc.Applications

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

Сервис Sc.Applications предназначен для обработки заявок на покупку пространства и других связанных операций. Он предоставляет API для регистрации, получения и обновления заявок, а также для получения информации о сервисе и его состоянии.

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

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

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

  • POST /applications/register-art-landing-application — Регистрация заявки на арт-лендинг.
  • POST /applications/purchase-of-space-application — Регистрация заявки на покупку пространства.
  • GET /applications/purchase-of-space-application — Получение списка заявок на покупку пространства.
  • GET /applications/purchase-of-space-application/{applicationId:guid} — Получение информации о конкретной заявке.
  • PUT /applications/purchase-of-space-application/states — Обновление состояния заявки на покупку пространства.
  • GET /serviceinfo/version — Получение версии сервиса.
  • GET /serviceinfo/health — Проверка работоспособности сервиса.

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

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

dotnet build
dotnet run

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

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

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

  • MongoDbConfig — настройки подключения к MongoDB.
  • RabbitMQConnectionSettings — настройки подключения к RabbitMQ.
  • ServiceEndpointsSettings — URL-адреса для взаимодействия с другими сервисами.

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

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

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

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

ARCHITECTURE — Sc.Applications

Обзор

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

Диаграммы

container.mmd

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

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