diff --git a/data/DataSample.json b/data/DataSample.json index a4facc7d7..9713f4346 100644 --- a/data/DataSample.json +++ b/data/DataSample.json @@ -12,8 +12,10 @@ "FilterListLanguages": null, "FilterListRules": null, "FilterListSoftware": null, + "LicenseId": null, "MaintainerId": null, "Name": "My Sample Advertisement Filter List", + "SubmissionUrl": null, "ViewUrl": "https://mysample.list/list.txt", "Id": 0, "CreatedDateUtc": "0001-01-01T00:00:00", @@ -30,8 +32,10 @@ "FilterListLanguages": null, "FilterListRules": null, "FilterListSoftware": null, + "LicenseId": null, "MaintainerId": null, "Name": "My Sample Malware Filter List", + "SubmissionUrl": null, "ViewUrl": "https://mysample.list/list.txt", "Id": 0, "CreatedDateUtc": "0001-01-01T00:00:00", diff --git a/data/DataSchema.json b/data/DataSchema.json index 25c63db76..2b6a01f81 100644 --- a/data/DataSchema.json +++ b/data/DataSchema.json @@ -75,6 +75,12 @@ "$ref": "#/definitions/FilterListSoftware" } }, + "LicenseId": { + "type": [ + "integer", + "null" + ] + }, "MaintainerId": { "type": [ "integer", @@ -87,6 +93,12 @@ "null" ] }, + "SubmissionUrl": { + "type": [ + "string", + "null" + ] + }, "ViewUrl": { "type": [ "string", @@ -116,8 +128,10 @@ "FilterListLanguages", "FilterListRules", "FilterListSoftware", + "LicenseId", "MaintainerId", "Name", + "SubmissionUrl", "ViewUrl", "Id", "CreatedDateUtc", diff --git a/src/FilterLists.Api/DependencyInjection/Extensions/ConfigureServicesCollection.cs b/src/FilterLists.Api/DependencyInjection/Extensions/ConfigureServicesCollection.cs index b1359c68a..e0e86db85 100644 --- a/src/FilterLists.Api/DependencyInjection/Extensions/ConfigureServicesCollection.cs +++ b/src/FilterLists.Api/DependencyInjection/Extensions/ConfigureServicesCollection.cs @@ -1,4 +1,5 @@ using System.IO; +using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.PlatformAbstractions; using Swashbuckle.AspNetCore.Swagger; @@ -9,12 +10,25 @@ public static class ConfigureServicesCollection { public static void AddFilterListsApi(this IServiceCollection services) { - services.AddMvc(); + services.AddMvcCustom(); services.AddApiVersioning(); - services.AddSwagger(); + services.AddResponseCaching(); + services.AddSwaggerGenCustom(); } - private static void AddSwagger(this IServiceCollection services) + private static void AddMvcCustom(this IServiceCollection services) + { + services.AddMvc(options => + { + options.CacheProfiles.Add("Long-Lived", + new CacheProfile + { + Duration = 86400 + }); + }); + } + + private static void AddSwaggerGenCustom(this IServiceCollection services) { services.AddSwaggerGen(c => { diff --git a/src/FilterLists.Api/Startup.cs b/src/FilterLists.Api/Startup.cs index 5f6adca76..0133674f2 100644 --- a/src/FilterLists.Api/Startup.cs +++ b/src/FilterLists.Api/Startup.cs @@ -29,6 +29,8 @@ public void Configure(IApplicationBuilder app) ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); + app.UseResponseCaching(); + app.UseSwagger(); app.UseSwaggerUI(c => { diff --git a/src/FilterLists.Api/V1/Controllers/ListsController.cs b/src/FilterLists.Api/V1/Controllers/ListsController.cs index 85df22622..e75a41b06 100644 --- a/src/FilterLists.Api/V1/Controllers/ListsController.cs +++ b/src/FilterLists.Api/V1/Controllers/ListsController.cs @@ -15,6 +15,7 @@ public ListsController(IFilterListService filterListService) } [HttpGet] + [ResponseCache(CacheProfileName = "Long-Lived")] public IActionResult Get() { return Json(filterListService.GetAllSummaries());