persistence/Persistence.Client
2024-12-10 13:55:01 +05:00
..
Clients Добавить клиент для работы с записями ChangeLog. Внести правки после ревью 2024-12-10 13:55:01 +05:00
CustomExceptions Расширить фабрику клиентов Persistance 2024-12-09 14:45:35 +05:00
Helpers Merge branch 'master' into ClientFactory 2024-12-10 09:54:14 +05:00
Persistence.Client.csproj Для Persistence.Client настроить NuGet + добавить readme 2024-12-09 17:11:39 +05:00
PersistenceClientFactory.cs Добавить клиент для работы с записями ChangeLog. Внести правки после ревью 2024-12-10 13:55:01 +05:00
Readme.md Добавить клиент для работы с записями ChangeLog. Внести правки после ревью 2024-12-10 13:55:01 +05:00

Persistence Client Nuget Readme

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

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

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

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

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

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

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

Для получения того или иного 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. При этом возможна авторизация через KeyCloak.

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