Olga Nemt
76e9f56107
Some checks failed
Unit tests / test (push) Failing after 1m7s
Обновлены все зависимости |
||
---|---|---|
.. | ||
Clients | ||
CustomExceptions | ||
Helpers | ||
DD.Persistence.Client.csproj | ||
PersistenceClientFactory.cs | ||
Readme.md |
Persistence Client Nuget Readme
Краткое описание Persistence сервиса
Persistence сервис отвечает за работу с хранимыми данными в рамках совокупности различных систем.
Описание пакета
Данный пакет предоставляет возможность взаимодействия с Persistence сервисом посредством обращения к конкретному клиенту, ответственному за работу с одной из областей сервиса.
Список предоставляемых клиентов
ISetpointClient
- Клиент для работы с уставкамиITechMessagesClient
- Клиент для работы с технологическими сообщениямиITimeSeriesClient
- Клиент для работы с временными даннымиITimestampedSetClient
- Клиент для работы с данными с отметкой времениIChangeLogClient
- Клиент для работы с записями ChangeLogIWitsDataClient
- Клиент для работы с параметрами WitsIDataSourceSystemClient
- Клиент для работы с системами
Использование
Для получения того или иного Persistence - клиента нужно
обращаться к фабрике Persistence клиентов - PersistenceClientFactory
. Для этого требуется:
- Добавить в проект фабрику HTTP - клиентов
IHttpClientFactory
.
Она должна предоставлять HTTP - клиента через методGetClient()
.
В том случае, если фабрика клиентов предоставляет не авторизованного клиента - необходимо добавить в проект фабрику токенов аутентификации
IAuthTokenFactory
с методомGetToken()
, возвращающем токен в виде строки (без префиксаBearer
).
- Добавить логирование
ILoger
- Внедрить зависимость в проект
services.AddSingleton<PersistenceClientFactory>();
- пример. - Обратиться к фабрике 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
.