From 33bb55d870586a2eabcc3fdf1206aca6b0b9f420 Mon Sep 17 00:00:00 2001 From: Collin Barrett <6483057+collinbarrett@users.noreply.github.com> Date: Sun, 8 Jun 2025 12:39:00 -0500 Subject: [PATCH] feat(api): adjust caching --- .../FilterLists.Directory.Api/Endpoints.cs | 26 ++++++++++++------- .../FilterLists.Directory.Api/Program.cs | 3 +-- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/services/Directory/FilterLists.Directory.Api/Endpoints.cs b/services/Directory/FilterLists.Directory.Api/Endpoints.cs index 5669630d5..b618cc12f 100644 --- a/services/Directory/FilterLists.Directory.Api/Endpoints.cs +++ b/services/Directory/FilterLists.Directory.Api/Endpoints.cs @@ -8,7 +8,7 @@ namespace FilterLists.Directory.Api; internal static class Endpoints { - private static readonly CacheControlFilter DefaultGetCacheFilter = new(3600, 86400); + private static readonly CacheControlFilter DefaultGetCacheFilter = new(900, 86400); internal static void MapEndpoints(this WebApplication app) { @@ -21,7 +21,8 @@ internal static void MapEndpoints(this WebApplication app) Summary = "Gets the languages targeted by the FilterLists.", OperationId = nameof(GetLanguages) }) - .AddEndpointFilter(DefaultGetCacheFilter); + .AddEndpointFilter(DefaultGetCacheFilter) + .CacheOutput("ExpireDay"); app.MapGet("/licenses", async (GetLicenses.Query query, CancellationToken ct) => await query.ExecuteAsync(ct)) @@ -32,7 +33,8 @@ internal static void MapEndpoints(this WebApplication app) Summary = "Gets the licenses applied to the FilterLists.", OperationId = nameof(GetLicenses) }) - .AddEndpointFilter(DefaultGetCacheFilter); + .AddEndpointFilter(DefaultGetCacheFilter) + .CacheOutput("ExpireDay"); app.MapGet("/lists", async (GetLists.Query query, CancellationToken ct) => await query.ExecuteAsync(ct)) @@ -43,7 +45,8 @@ internal static void MapEndpoints(this WebApplication app) Summary = "Gets the FilterLists.", OperationId = nameof(GetLists) }) - .AddEndpointFilter(DefaultGetCacheFilter); + .AddEndpointFilter(DefaultGetCacheFilter) + .CacheOutput("ExpireDay"); app.MapGet("/lists/{id:int}", async Task, NotFound>> @@ -73,7 +76,8 @@ internal static void MapEndpoints(this WebApplication app) } ] }) - .AddEndpointFilter(DefaultGetCacheFilter); + .AddEndpointFilter(DefaultGetCacheFilter) + .CacheOutput("ExpireDay"); app.MapGet("/maintainers", async (GetMaintainers.Query query, CancellationToken ct) => await query.ExecuteAsync(ct)) @@ -84,7 +88,8 @@ internal static void MapEndpoints(this WebApplication app) Summary = "Gets the maintainers of the FilterLists.", OperationId = nameof(GetMaintainers) }) - .AddEndpointFilter(DefaultGetCacheFilter); + .AddEndpointFilter(DefaultGetCacheFilter) + .CacheOutput("ExpireDay"); app.MapGet("/software", async (GetSoftware.Query query, CancellationToken ct) => await query.ExecuteAsync(ct)) @@ -95,7 +100,8 @@ internal static void MapEndpoints(this WebApplication app) Summary = "Gets the software that subscribes to the FilterLists.", OperationId = nameof(GetSoftware) }) - .AddEndpointFilter(DefaultGetCacheFilter); + .AddEndpointFilter(DefaultGetCacheFilter) + .CacheOutput("ExpireDay"); app.MapGet("/syntaxes", async (GetSyntaxes.Query query, CancellationToken ct) => await query.ExecuteAsync(ct)) @@ -106,7 +112,8 @@ internal static void MapEndpoints(this WebApplication app) Summary = "Gets the syntaxes of the FilterLists.", OperationId = nameof(GetSyntaxes) }) - .AddEndpointFilter(DefaultGetCacheFilter); + .AddEndpointFilter(DefaultGetCacheFilter) + .CacheOutput("ExpireDay"); app.MapGet("/tags", async (GetTags.Query query, CancellationToken ct) => await query.ExecuteAsync(ct)) @@ -117,6 +124,7 @@ internal static void MapEndpoints(this WebApplication app) Summary = "Gets the tags of the FilterLists.", OperationId = nameof(GetTags) }) - .AddEndpointFilter(DefaultGetCacheFilter); + .AddEndpointFilter(DefaultGetCacheFilter) + .CacheOutput("ExpireDay"); } } \ No newline at end of file diff --git a/services/Directory/FilterLists.Directory.Api/Program.cs b/services/Directory/FilterLists.Directory.Api/Program.cs index c9e4d8527..195557eb4 100644 --- a/services/Directory/FilterLists.Directory.Api/Program.cs +++ b/services/Directory/FilterLists.Directory.Api/Program.cs @@ -7,8 +7,7 @@ builder.WebHost.ConfigureKestrel(serverOptions => serverOptions.AddServerHeader = false); builder.Services.AddRequestTimeouts(); -builder.Services.AddOutputCache(); -builder.AddServiceDefaults(); +builder.Services.AddOutputCache(o => o.AddPolicy("ExpireDay", b => b.Expire(TimeSpan.FromDays(1)))); builder.Services.AddCors(options => CorsConfiguration.SetupAction(options, builder.Configuration)); builder.Services.AddProblemDetails(); builder.Services.AddEndpointsApiExplorer();