feat(infrastructure): add extension methods for configuring and registering HttpClient

- Implemented ConfigureHttpClient extension for IServiceCollection with dynamic client name
- Added AddInfrastructureServices method to simplify HttpClient registration via configurable options
- Introduced sealed Config class for flexible client configuration
This commit is contained in:
Developer 02
2025-08-12 18:41:07 +02:00
parent c3c6ffdf99
commit 4256a79122
2 changed files with 39 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
using Microsoft.Extensions.DependencyInjection;
namespace Leanetec.EConnect.Infrastructure;
public static class DependencyInjection
{
internal static readonly string HttpClientName = Guid.NewGuid().ToString();
internal static IServiceCollection ConfigureHttpClient(this IServiceCollection services, Action<HttpClient> configureClient)
{
services.AddHttpClient(HttpClientName, configureClient);
return services;
}
public static IServiceCollection AddInfrastructureServices(this IServiceCollection services, Action<Config> options)
{
Config config = new(services);
options.Invoke(config);
services.ConfigureHttpClient(config.Client);
return services;
}
public sealed class Config
{
private readonly IServiceCollection _services;
internal Config(IServiceCollection services)
{
_services = services;
}
public Action<HttpClient> Client { get; set; } = _ => { };
}
}

View File

@@ -6,4 +6,9 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
</ItemGroup>
</Project>