Для Persistence.Client настроить NuGet + добавить readme
This commit is contained in:
parent
36ace4125d
commit
237ff192f1
@ -4,8 +4,44 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<!--Генерация NuGet пакета при сборке-->
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<!--Наименование-->
|
||||
<Title>Persistence.Client</Title>
|
||||
<!--Версия пакета-->
|
||||
<VersionPrefix>1.0.$([System.DateTime]::UtcNow.ToString(yyMM.ddHH))</VersionPrefix>
|
||||
<!--Версия сборки-->
|
||||
<AssemblyVersion>1.0.$([System.DateTime]::UtcNow.ToString(yyMM.ddHH))</AssemblyVersion>
|
||||
<!--Id пакета-->
|
||||
<PackageId>Persistence.Client</PackageId>
|
||||
|
||||
<!--Автор-->
|
||||
<Authors>Digital Drilling</Authors>
|
||||
<!--Компания-->
|
||||
<Company>Digital Drilling</Company>
|
||||
<!--Описание-->
|
||||
<Description>Пакет для получения клиентов для работы с Persistence сервисом</Description>
|
||||
|
||||
<!--Url репозитория-->
|
||||
<RepositoryUrl>https://git.ddrilling.ru/on.nemtina/persistence.git</RepositoryUrl>
|
||||
<!--тип репозитория-->
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<!--Символы отладки-->
|
||||
<IncludeSymbols>true</IncludeSymbols>
|
||||
<!--Формат пакета с символами-->
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
<!--Путь к пакету-->
|
||||
<PackageOutputPath>C:\Projects\Nuget</PackageOutputPath>
|
||||
|
||||
<!--Readme-->
|
||||
<PackageReadmeFile>Readme.md</PackageReadmeFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="Readme.md" Pack="true" PackagePath="\"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="8.2.1" />
|
||||
<PackageReference Include="Refit" Version="8.0.0" />
|
||||
|
45
Persistence.Client/Readme.md
Normal file
45
Persistence.Client/Readme.md
Normal file
@ -0,0 +1,45 @@
|
||||
# Persistence Client Nuget Readme
|
||||
## Краткое описание Persistence сервиса
|
||||
Persistence сервис отвечает за работу с хранимыми данными
|
||||
в рамках совокупности различных систем.
|
||||
|
||||
## Описание пакета
|
||||
Данный пакет предоставляет возможность взаимодействия с
|
||||
Persistence сервисом посредством обращения к конкретному
|
||||
клиенту, ответсвенному за работу с одной из областей сервиса.
|
||||
|
||||
## Список предоставляемых клиентов
|
||||
- `ISetpointClient` - Клиент для работы с уставками
|
||||
- `ITechMessagesClient` - Клиент для работы с технологическими сообщениями
|
||||
- `ITimeSeriesClient` - Клиент для работы с временными данными
|
||||
- `ITimestampedSetClient` - Клиент для работы с данными с отметкой времени
|
||||
|
||||
## Использование
|
||||
Для получения того или иного 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"
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user