2024-12-09 17:11:39 +05:00
|
|
|
|
# Persistence Client Nuget Readme
|
|
|
|
|
## Краткое описание Persistence сервиса
|
|
|
|
|
Persistence сервис отвечает за работу с хранимыми данными
|
|
|
|
|
в рамках совокупности различных систем.
|
|
|
|
|
|
|
|
|
|
## Описание пакета
|
|
|
|
|
Данный пакет предоставляет возможность взаимодействия с
|
|
|
|
|
Persistence сервисом посредством обращения к конкретному
|
|
|
|
|
клиенту, ответсвенному за работу с одной из областей сервиса.
|
|
|
|
|
|
|
|
|
|
## Список предоставляемых клиентов
|
|
|
|
|
- `ISetpointClient` - Клиент для работы с уставками
|
|
|
|
|
- `ITechMessagesClient` - Клиент для работы с технологическими сообщениями
|
|
|
|
|
- `ITimeSeriesClient` - Клиент для работы с временными данными
|
|
|
|
|
- `ITimestampedSetClient` - Клиент для работы с данными с отметкой времени
|
2024-12-10 13:55:01 +05:00
|
|
|
|
- `IChangeLogClient` - Клиент для работы с записями ChangeLog
|
2024-12-09 17:11:39 +05:00
|
|
|
|
|
|
|
|
|
## Использование
|
|
|
|
|
Для получения того или иного Persistence - клиента нужно
|
|
|
|
|
обращаться к фабрике Persistence клиентов - `PersistenceClientFactory`. Для этого требуется:
|
|
|
|
|
1. Добавить в проект фабрику HTTP - клиентов `IHttpClientFactory`.
|
|
|
|
|
<br>Она должна предоставлять HTTP - клиента через метод `GetClient()`.
|
|
|
|
|
>В том случае, если фабрика клиентов предоставляет не авторизованного клиента -
|
|
|
|
|
необходимо добавить в проект фабрику токенов аутентификации `IAuthTokenFactory` с методом `GetToken()`,
|
|
|
|
|
возвращающем токен в виде строки (без префикса `Bearer`).
|
|
|
|
|
|
|
|
|
|
2. Добавить логирование `ILoger`
|
|
|
|
|
3. Внедрить зависимость в проект `services.AddSingleton<PersistenceClientFactory>();` - пример.
|
|
|
|
|
4. Обратиться к фабрике Persistence - клиентов и получить требуемого клиента.
|
|
|
|
|
|
|
|
|
|
## xunit тестирование
|
|
|
|
|
При написании интеграционных тестов с ипользованием Persistence - клиентов
|
|
|
|
|
Http - клиент не обязан быть авторизован через передачу токена в `PersistenceClientFactory`.
|
|
|
|
|
Для осуществления тестовой авторизации достаточно добавить в `appsettings.Tests.json`.
|
|
|
|
|
При этом возможна авторизация через `KeyCloak`.
|
|
|
|
|
```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"
|
|
|
|
|
```
|
|
|
|
|
|