persistence/DD.Persistence.Client
2024-12-27 13:35:18 +05:00
..
Clients Инжект новой фабрики клиентов вместо PersistenceClientFactory в интеграционных тестах 2024-12-27 13:35:18 +05:00
CustomExceptions 1. Исправлены namespaces. 2024-12-16 15:38:46 +05:00
Helpers 1. Исправлены namespaces. 2024-12-16 15:38:46 +05:00
DD.Persistence.Client.csproj Выброс исключения, если в appsettings.json в секции ClientUrl не указан путь до Persistence-сервера 2024-12-26 15:47:24 +05:00
DependencyInjection.cs Инжект новой фабрики клиентов вместо PersistenceClientFactory в интеграционных тестах 2024-12-27 13:35:18 +05:00
IRefitClientFactory.cs Новая фабрика рефит-клиентов (RefitClientFactory). 2024-12-26 13:42:14 +05:00
PersistenceClientFactory.cs Инжект новой фабрики клиентов вместо PersistenceClientFactory в интеграционных тестах 2024-12-27 13:35:18 +05:00
Readme.md 1. Исправлены namespaces. 2024-12-16 15:38:46 +05:00
RefitClientFactory.cs Пуш изменений в проекте с интеграционными тестами 2024-12-27 00:37:52 +05:00

Persistence Client Nuget Readme

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

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

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

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

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

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

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

Для получения того или иного 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.