refactor(econnect-client): Gespeicherten HttpClient entfernen und pro Anfrage erstellen

- Feld „_http“ durch „_httpFactory“ ersetzt, um die Erstellung von HttpClient zu verzögern
- Eigenschaft „Http“ hinzugefügt, um einen neuen Client aus der Factory abzurufen
- Alle Verwendungen aktualisiert, um die Eigenschaft „Http“ anstelle der gespeicherten Instanz zu verwenden
This commit is contained in:
Developer 02
2025-08-14 17:27:28 +02:00
parent 4b8217bb80
commit 9117a23be3

View File

@@ -6,17 +6,19 @@ namespace Leanetec.EConnect.Infrastructure;
public class EConnectClient<TError> : IEConnectClient<TError> where TError : class public class EConnectClient<TError> : IEConnectClient<TError> where TError : class
{ {
private readonly HttpClient _http; private readonly IHttpClientFactory _httpFactory;
public EConnectClient(IHttpClientFactory factory) private HttpClient Http => _httpFactory.CreateEConnectClient();
public EConnectClient(IHttpClientFactory httpFactory)
{ {
_http = factory.CreateEConnectClient(); _httpFactory = httpFactory;
} }
public async Task<Response<TData, TError>> GetAsync<TData>(string? route = null, CancellationToken cancel = default) public async Task<Response<TData, TError>> GetAsync<TData>(string? route = null, CancellationToken cancel = default)
where TData : class where TData : class
{ {
var res = await _http.GetAsync(route, cancel); var res = await Http.GetAsync(route, cancel);
if (res.IsSuccessStatusCode) if (res.IsSuccessStatusCode)
{ {
@@ -33,7 +35,7 @@ public class EConnectClient<TError> : IEConnectClient<TError> where TError : cl
public async Task<Response<IAsyncEnumerable<TData?>, TError>> GetListAsAsyncEnumerable<TData>(string? route = null, CancellationToken cancel = default) public async Task<Response<IAsyncEnumerable<TData?>, TError>> GetListAsAsyncEnumerable<TData>(string? route = null, CancellationToken cancel = default)
where TData : class where TData : class
{ {
var res = await _http.GetAsync(route, cancel); var res = await Http.GetAsync(route, cancel);
if (res.IsSuccessStatusCode) if (res.IsSuccessStatusCode)
{ {