persistence/DD.Persistence.Client
Roman Efremov 5d820fb2c8
All checks were successful
Unit tests / test (push) Successful in 45s
Изменить ChangeLog (упрощение сущности)
2025-01-24 17:24:18 +05:00
..
Clients Изменить ChangeLog (упрощение сущности) 2025-01-24 17:24: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 Добавлен маппинг для TimeStampedData 2025-01-20 15:12:40 +05:00
DependencyInjection.cs Merge branch 'master' into TimestampedValuesRepository 2025-01-20 17:24:01 +05:00
IRefitClientFactory.cs Правки по ревью: авторизация не внутри RefitClientFactory, а снаружи, например, в IntegrationTests 2024-12-28 15:30:31 +05:00
ISetpointConfigStorage.cs Добавлен ввод конфигурации для Setpoint 2025-01-17 16:39:36 +05:00
Readme.md Фикс описаний 2025-01-20 09:16:36 +05:00
RefitClientFactory.cs Правки по ревью: авторизация не внутри RefitClientFactory, а снаружи, например, в IntegrationTests 2024-12-28 15:30:31 +05:00
SetpointConfigStorage.cs Добавлен тест на проверку типов клиента 2025-01-20 14:01:46 +05:00
TimestampedSetMapper.cs Merge branch 'master' into TimestampedValuesRepository 2025-01-21 10:53:16 +05:00

Persistence Client Nuget Readme

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

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

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

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

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

  • ISetpointClient - Клиент для работы с уставками
  • ITechMessagesClient - Клиент для работы с технологическими сообщениями
  • ITimestampedValuesClient - Клиент для работы с наборами данных, имеющими отметку времени
  • 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.