fix errors when no config is passed; add health check endpoint; add response caching

This commit is contained in:
2026-04-16 15:07:11 +02:00
parent 443e384af9
commit c9928c06e6
4 changed files with 16 additions and 4 deletions
+3 -1
View File
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;
namespace Finch;
@@ -7,6 +8,7 @@ public static class ApplicationBuilderExtensions
public static IApplicationBuilder UseFinch(this IApplicationBuilder app)
{
app.UseMiddleware<FinchContextMiddleware>();
app.UseResponseCaching();
app.UseOutputCache();
if (app is WebApplication webApplication)
@@ -15,7 +17,7 @@ public static class ApplicationBuilderExtensions
webApplication.MapControllers();
}
FinchBuilder.Modules.Configure(app, null, app.ApplicationServices);
FinchBuilder.Modules.Configure(app, app as IEndpointRouteBuilder, app.ApplicationServices);
return app;
}
}
+1
View File
@@ -38,6 +38,7 @@ public class FinchBuilder
startupOptions.AssemblyDiscoveryRules.Add(new FinchAssemblyDiscoveryRule());
setupAction?.Invoke(startupOptions);
services.AddResponseCaching();
services.AddControllers();
services.AddOutputCache();
mvcBuilder = services.AddRazorPages();
+2 -2
View File
@@ -15,7 +15,7 @@ public class FinchLoggingModule : FinchModule
{
// get seq configuration
IConfigurationSection seqConfig = configuration.GetSection("Finch:Seq");
FinchSeqOptions seqOptions = seqConfig.Get<FinchSeqOptions>();
FinchSeqOptions seqOptions = seqConfig.Get<FinchSeqOptions>() ?? new();
// default level
builder.SetMinimumLevel(seqOptions.MinimumLevel);
@@ -27,7 +27,7 @@ public class FinchLoggingModule : FinchModule
}
// add optional seq sink
if (seqConfig.Exists())
if (seqConfig.Exists() && seqOptions.ApiKey.HasValue())
{
builder.AddSeq(seqOptions.ServerUrl, seqOptions.ApiKey, seqOptions.Enrichers);
}
+10 -1
View File
@@ -1,4 +1,6 @@
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace Finch.Mvc;
@@ -8,5 +10,12 @@ public class FinchMvcModule : FinchModule
public override void ConfigureServices(IServiceCollection services, IConfiguration configuration)
{
services.AddRouting(opts => opts.LowercaseUrls = true);
services.AddHealthChecks();
}
public override void Configure(IApplicationBuilder app, IEndpointRouteBuilder routes, IServiceProvider serviceProvider)
{
routes.MapHealthChecks("/health");
}
}