chore: add documentation comments and stylecop rules

This commit is contained in:
2025-12-04 11:25:01 +08:00
parent 17d143a351
commit 8e4c2b0e45
142 changed files with 1309 additions and 439 deletions

View File

@@ -18,9 +18,11 @@ using TakeoutSaaS.Shared.Kernel.Ids;
using TakeoutSaaS.Shared.Web.Extensions;
using TakeoutSaaS.Shared.Web.Swagger;
// 1. 创建构建器与日志模板
var builder = WebApplication.CreateBuilder(args);
const string logTemplate = "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {Level:u3}] [TraceId:{TraceId}] [SpanId:{SpanId}] [Service:{Service}] {SourceContext} {Message:lj}{NewLine}{Exception}";
// 2. 注册雪花 ID 生成器与 Serilog
builder.Services.AddSingleton<IIdGenerator>(_ => new SnowflakeIdGenerator());
builder.Host.UseSerilog((_, _, configuration) =>
{
@@ -36,6 +38,7 @@ builder.Host.UseSerilog((_, _, configuration) =>
outputTemplate: logTemplate);
});
// 3. 注册通用 Web 能力与 Swagger
builder.Services.AddSharedWebCore();
builder.Services.AddSharedSwagger(options =>
{
@@ -43,6 +46,8 @@ builder.Services.AddSharedSwagger(options =>
options.Description = "小程序 API 文档";
options.EnableAuthorization = true;
});
// 4. 注册多租户与业务模块
builder.Services.AddTenantResolution(builder.Configuration);
builder.Services.AddStorageModule(builder.Configuration);
builder.Services.AddStorageApplication();
@@ -51,6 +56,8 @@ builder.Services.AddSmsApplication(builder.Configuration);
builder.Services.AddMessagingModule(builder.Configuration);
builder.Services.AddMessagingApplication();
builder.Services.AddHealthChecks();
// 5. 配置 OpenTelemetry 采集
var otelSection = builder.Configuration.GetSection("Otel");
var otelEndpoint = otelSection.GetValue<string>("Endpoint");
var useConsoleExporter = otelSection.GetValue<bool?>("UseConsoleExporter") ?? builder.Environment.IsDevelopment();
@@ -102,6 +109,7 @@ builder.Services.AddOpenTelemetry()
}
});
// 6. 配置 CORS
var miniOrigins = ResolveCorsOrigins(builder.Configuration, "Cors:Mini");
builder.Services.AddCors(options =>
{
@@ -111,6 +119,7 @@ builder.Services.AddCors(options =>
});
});
// 7. 构建应用并配置中间件管道
var app = builder.Build();
app.UseCors("MiniApiCors");
@@ -123,6 +132,7 @@ app.MapPrometheusScrapingEndpoint();
app.MapControllers();
app.Run();
// 8. 解析配置中的 CORS 域名
static string[] ResolveCorsOrigins(IConfiguration configuration, string sectionKey)
{
var origins = configuration.GetSection(sectionKey).Get<string[]>();
@@ -132,6 +142,7 @@ static string[] ResolveCorsOrigins(IConfiguration configuration, string sectionK
.ToArray() ?? [];
}
// 9. 构建 CORS 策略
static void ConfigureCorsPolicy(CorsPolicyBuilder policy, string[] origins)
{
if (origins.Length == 0)