refactor(api): split startup configuration

This commit is contained in:
2026-07-28 12:25:28 +08:00
parent 5d2248efee
commit e43ae0574c
10 changed files with 640 additions and 496 deletions

View File

@@ -0,0 +1,33 @@
using Serilog;
using Tiku.Application;
using Tiku.Infrastructure;
namespace Tiku.Api.Configuration;
public static class DependencyInjection
{
public static WebApplicationBuilder AddApiServices(this WebApplicationBuilder builder)
{
builder.Services.AddSerilog((services, configuration) => configuration
.ReadFrom.Configuration(builder.Configuration)
.ReadFrom.Services(services)
.Enrich.FromLogContext(),
preserveStaticLogger: true);
builder.Services.AddApiPresentation();
builder.Services.AddApplication();
builder.Services.AddNetworkConfiguration(builder.Configuration);
builder.Services.AddApiRateLimiting(builder.Configuration);
var connectionString = Options.OptionsValidation.ResolveDatabaseConnectionString(
builder.Configuration,
builder.Environment.IsDevelopment());
builder.Services.AddInfrastructure(connectionString);
builder.Services.AddApiDataProtection(builder.Configuration, builder.Environment);
builder.Services.AddExternalServiceOptions(builder.Configuration, builder.Environment);
builder.Services.AddApiAuthenticationAndAuthorization(builder.Configuration, builder.Environment);
return builder;
}
}