Для Persistence.Client настроить NuGet + добавить readme
This commit is contained in:
parent
36ace4125d
commit
237ff192f1
@ -4,8 +4,44 @@
|
|||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<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>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Readme.md" Pack="true" PackagePath="\"/>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="8.2.1" />
|
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="8.2.1" />
|
||||||
<PackageReference Include="Refit" Version="8.0.0" />
|
<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