From 237ff192f100bce428f3d72310e84f8e9206dab8 Mon Sep 17 00:00:00 2001 From: Roman Efremov Date: Mon, 9 Dec 2024 17:11:39 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BB=D1=8F=20Persistence.Client=20?= =?UTF-8?q?=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B8=D1=82=D1=8C=20NuGet?= =?UTF-8?q?=20+=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=20readm?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Persistence.Client/Persistence.Client.csproj | 36 ++++++++++++++++ Persistence.Client/Readme.md | 45 ++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 Persistence.Client/Readme.md 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" +``` +