using Serilog; namespace SimpleAdmin.Api; /// /// 为正式启动与集成测试提供统一的应用构建入口。 /// public static class SimpleAdminApiBootstrap { /// /// 创建并配置 API 应用构建器。 /// /// 启动参数。 /// 附加构建配置,主要供测试环境注入本地配置和测试服务器使用。 public static WebApplicationBuilder CreateBuilder( string[] args, Action? configureBuilder = null, string? environmentName = null) { var builder = WebApplication.CreateSlimBuilder(new WebApplicationOptions { Args = args, EnvironmentName = environmentName, ApplicationName = typeof(SimpleAdminApiModule).Assembly.GetName().Name }); configureBuilder?.Invoke(builder); if (!builder.Configuration.GetValue("UseLocalConfigs")) { builder.Configuration.AddConsul("idwms/common", source => source.ReloadOnChange = true); builder.Configuration.AddConsul("idwms/admin", source => source.ReloadOnChange = true); } Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(builder.Configuration) .CreateLogger(); builder.WebHost.UseUrls(builder.Configuration.GetSection("App:Urls").Get() ?? []); builder.Host.UseAutofac().UseSerilog(); builder.Services.AddApplication(); return builder; } /// /// 根据构建器生成并初始化 WebApplication。 /// public static WebApplication BuildApplication(WebApplicationBuilder builder) { var app = builder.Build(); app.InitializeApplication(); return app; } }