Новая фабрика клиентов #17

Merged
on.nemtina merged 7 commits from feature/add-refit-factory into master 2025-01-10 13:54:19 +05:00
2 changed files with 13 additions and 2 deletions
Showing only changes of commit d0cd647849 - Show all commits

View File

@ -53,6 +53,7 @@
<PackageReference Include="Refit" Version="8.0.0" />
<PackageReference Include="Refit.HttpClientFactory" Version="8.0.0" />
<PackageReference Include="RestSharp" Version="112.1.0" />
Review

проверить необходимость

проверить необходимость
Review
image
<img width="760" alt="image" src="attachments/ce817d0b-ffdb-484f-8413-72523bf0cf3a">
<PackageReference Include="System.Configuration.ConfigurationManager" Version="9.0.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.3.0" />
Review

проверить необходимость

проверить необходимость
Review

Необходимость только для этого:

Необходимость только для этого:
</ItemGroup>

View File

@ -1,7 +1,9 @@
using DD.Persistence.Client.Clients.Interfaces.Refit;
using DD.Persistence.Client.Helpers;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Refit;
using System.Configuration;
using System.Text.Json;
namespace DD.Persistence.Client;
Review

А не нужно ли добавить в проект <NoWarn>$(NoWarn);1591</NoWarn>? У меня всё в варнингах почему-то

А не нужно ли добавить в проект `<NoWarn>$(NoWarn);1591</NoWarn>`? У меня всё в варнингах почему-то
Review

Создала отдельную задачу для этого:
https://project.ddrilling.ru/projects/persistance-service/work_packages/746/activity

Создала отдельную задачу для этого: https://project.ddrilling.ru/projects/persistance-service/work_packages/746/activity
@ -18,11 +20,19 @@ public class RefitClientFactory<T> : IRefitClientFactory<T> where T : IRefitClie
/// <summary>
///

Пустой summary

Пустой summary
/// </summary>
public RefitClientFactory(IConfiguration configuration)
public RefitClientFactory(IConfiguration configuration, ILogger<IRefitClientFactory<T>> logger)
{
this.client = new HttpClient();
var baseUrl = configuration.GetSection("ClientUrl").Get<string>()!;
var baseUrl = configuration.GetSection("ClientUrl").Get<string>();
if (String.IsNullOrEmpty(baseUrl))
{
var exception = new SettingsPropertyNotFoundException("В настройках конфигурации не указан адрес Persistence сервиса.");
logger.LogError(exception.Message);
throw exception;
}
client.BaseAddress = new Uri(baseUrl);
client.Authorize(configuration);
Review

Данный метод тянет аутентификационные данные с конфигов и авторизует Http - клиента. Это нужно для тестов, но нужно ли для непосредственного использования фабрики сторонними сервисами? Если они передают уже авторизованного Http клиента - то нужно предусмотреть вызов client.Authorize(configuration); только для тестов. Например проверкой Environment, либо через конфиг

Данный метод тянет аутентификационные данные с конфигов и авторизует Http - клиента. Это нужно для тестов, но нужно ли для непосредственного использования фабрики сторонними сервисами? Если они передают уже авторизованного Http клиента - то нужно предусмотреть вызов `client.Authorize(configuration);` только для тестов. Например проверкой Environment, либо через конфиг