persistence/Persistence.Client
2024-12-12 11:57:36 +05:00
..
Clients Актуализировать работу с технологическими сообщениями под Event Service 2024-12-12 11:47:52 +05:00
CustomExceptions Расширить фабрику клиентов Persistance 2024-12-09 14:45:35 +05:00
Helpers Внести правку после ревью 2024-12-12 11:56:20 +05:00
Persistence.Client.csproj Для Persistence.Client настроить NuGet + добавить readme 2024-12-09 17:11:39 +05:00
PersistenceClientFactory.cs Добавить клиент для работы с параметрами Wits 2024-12-11 11:29:50 +05:00
Readme.md Добавить клиент для работы с параметрами Wits 2024-12-11 11:29:50 +05:00

Persistence Client Nuget Readme

Краткое описание Persistence сервиса

Persistence сервис отвечает за работу с хранимыми данными в рамках совокупности различных систем.

Описание пакета

Данный пакет предоставляет возможность взаимодействия с Persistence сервисом посредством обращения к конкретному клиенту, ответсвенному за работу с одной из областей сервиса.

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

  • ISetpointClient - Клиент для работы с уставками
  • ITechMessagesClient - Клиент для работы с технологическими сообщениями
  • ITimeSeriesClient - Клиент для работы с временными данными
  • ITimestampedSetClient - Клиент для работы с данными с отметкой времени
  • IChangeLogClient - Клиент для работы с записями ChangeLog
  • IWitsDataClient - Клиент для работы с параметрами Wits

Использование

Для получения того или иного Persistence - клиента нужно обращаться к фабрике Persistence клиентов - PersistenceClientFactory. Для этого требуется:

  1. Добавить в проект фабрику HTTP - клиентов IHttpClientFactory.
    Она должна предоставлять HTTP - клиента через метод GetClient().

В том случае, если фабрика клиентов предоставляет не авторизованного клиента - необходимо добавить в проект фабрику токенов аутентификации IAuthTokenFactory с методом GetToken(), возвращающем токен в виде строки (без префикса Bearer).

  1. Добавить логирование ILoger
  2. Внедрить зависимость в проект services.AddSingleton<PersistenceClientFactory>(); - пример.
  3. Обратиться к фабрике Persistence - клиентов и получить требуемого клиента.

xunit тестирование

При написании интеграционных тестов с ипользованием Persistence - клиентов Http - клиент не обязан быть авторизован через передачу токена в PersistenceClientFactory. Для осуществления тестовой авторизации достаточно добавить в appsettings.Tests.json :

"NeedUseKeyCloak": false,
  "AuthUser": {
    "username": "myuser",
    "password": 12345,
    "clientId": "webapi",
    "grantType": "password"
  },
  "KeycloakGetTokenUrl": "http://192.168.0.10:8321/realms/Persistence/protocol/openid-connect/token"

При этом возможна авторизация через KeyCloak.