diff --git a/docker-compose.yml b/docker-compose.yml index d6effee06..545734abd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,7 @@ services: image: ghcr.io/collinbarrett/filterlists-archival-api restart: always networks: + - reverse-proxy - archival depends_on: - archival-scheduling-db diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/BaseApiClient.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/BaseApiClient.cs deleted file mode 100644 index 0db198a26..000000000 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/BaseApiClient.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System.Net.Http; -using System.Text.Json; -using System.Threading; -using System.Threading.Tasks; - -namespace FilterLists.SharedKernel.Apis.Clients -{ - internal abstract class BaseApiClient - { - protected BaseApiClient(HttpClient httpClient) - { - Client = httpClient; - } - - protected HttpClient Client { get; } - - protected async Task GetAsync(string requestUri, CancellationToken cancellationToken = default) - { - var response = await Client.GetAsync(requestUri, cancellationToken); - response.EnsureSuccessStatusCode(); - await using var responseStream = await response.Content.ReadAsStreamAsync(); - return await JsonSerializer.DeserializeAsync(responseStream, cancellationToken: cancellationToken); - } - } -} diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs index b14f38e5a..b5f7a6799 100644 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs @@ -1,5 +1,6 @@ -using FilterLists.SharedKernel.Apis.Clients.Directory; +using System; using Microsoft.Extensions.DependencyInjection; +using Refit; namespace FilterLists.SharedKernel.Apis.Clients { @@ -7,7 +8,8 @@ public static class ConfigurationExtensions { public static void AddApiClients(this IServiceCollection services) { - services.AddHttpClient(); + services.AddRefitClient() + .ConfigureHttpClient(c => c.BaseAddress = new Uri("http://directory-api/api")); } } } diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Directory/DirectoryApiApiClient.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Directory/DirectoryApiApiClient.cs deleted file mode 100644 index e6a08aa73..000000000 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Directory/DirectoryApiApiClient.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Net.Http; -using System.Threading; -using System.Threading.Tasks; -using FilterLists.SharedKernel.Apis.Contracts.Directory; - -namespace FilterLists.SharedKernel.Apis.Clients.Directory -{ - internal sealed class DirectoryApiApiClient : BaseApiClient, IDirectoryApiClient - { - public DirectoryApiApiClient(HttpClient httpClient, Uri directoryApiBaseUrl) : base(httpClient) - { - Client.BaseAddress = directoryApiBaseUrl; - } - - public async Task> GetListsAsync(CancellationToken cancellationToken = default) - { - return await GetAsync>("/lists", cancellationToken); - } - - public async Task GetListDetailsAsync(int id, CancellationToken cancellationToken = default) - { - return await GetAsync($"/lists/{id}", cancellationToken); - } - } -} diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj index 3508a2c3a..f959b1574 100644 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/FilterLists.SharedKernel.Apis.Clients.csproj @@ -21,8 +21,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - + diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Directory/IDirectoryApiClient.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/IDirectoryApiClient.cs similarity index 77% rename from services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Directory/IDirectoryApiClient.cs rename to services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/IDirectoryApiClient.cs index 659442cb4..1332b13df 100644 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Directory/IDirectoryApiClient.cs +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/IDirectoryApiClient.cs @@ -2,12 +2,16 @@ using System.Threading; using System.Threading.Tasks; using FilterLists.SharedKernel.Apis.Contracts.Directory; +using Refit; -namespace FilterLists.SharedKernel.Apis.Clients.Directory +namespace FilterLists.SharedKernel.Apis.Clients { public interface IDirectoryApiClient { + [Get("/lists")] Task> GetListsAsync(CancellationToken cancellationToken = default); + + [Get("/lists/{id}")] Task GetListDetailsAsync(int id, CancellationToken cancellationToken = default); } }