diff --git a/Persistence.Client/Persistence.Client.csproj b/Persistence.Client/Persistence.Client.csproj index 72aa381..b764e7a 100644 --- a/Persistence.Client/Persistence.Client.csproj +++ b/Persistence.Client/Persistence.Client.csproj @@ -4,8 +4,44 @@ net8.0 enable enable + + + True + + Persistence.Client + + 1.0.$([System.DateTime]::UtcNow.ToString(yyMM.ddHH)) + + 1.0.$([System.DateTime]::UtcNow.ToString(yyMM.ddHH)) + + Persistence.Client + + + Digital Drilling + + Digital Drilling + + Пакет для получения клиентов для работы с Persistence сервисом + + + https://git.ddrilling.ru/on.nemtina/persistence.git + + git + + true + + snupkg + + C:\Projects\Nuget + + + Readme.md + + + + diff --git a/Persistence.Client/Readme.md b/Persistence.Client/Readme.md new file mode 100644 index 0000000..76e862a --- /dev/null +++ b/Persistence.Client/Readme.md @@ -0,0 +1,45 @@ +# Persistence Client Nuget Readme +## Краткое описание Persistence сервиса +Persistence сервис отвечает за работу с хранимыми данными +в рамках совокупности различных систем. + +## Описание пакета +Данный пакет предоставляет возможность взаимодействия с +Persistence сервисом посредством обращения к конкретному +клиенту, ответсвенному за работу с одной из областей сервиса. + +## Список предоставляемых клиентов +- `ISetpointClient` - Клиент для работы с уставками +- `ITechMessagesClient` - Клиент для работы с технологическими сообщениями +- `ITimeSeriesClient` - Клиент для работы с временными данными +- `ITimestampedSetClient` - Клиент для работы с данными с отметкой времени + +## Использование +Для получения того или иного Persistence - клиента нужно +обращаться к фабрике Persistence клиентов - `PersistenceClientFactory`. Для этого требуется: +1. Добавить в проект фабрику HTTP - клиентов `IHttpClientFactory`. +
Она должна предоставлять HTTP - клиента через метод `GetClient()`. +>В том случае, если фабрика клиентов предоставляет не авторизованного клиента - +необходимо добавить в проект фабрику токенов аутентификации `IAuthTokenFactory` с методом `GetToken()`, +возвращающем токен в виде строки (без префикса `Bearer`). + +2. Добавить логирование `ILoger` +3. Внедрить зависимость в проект `services.AddSingleton();` - пример. +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" +``` +