Web 集成
TKWF.Domain.Web 提供 Session 中间件、HttpContext 适配等 Web 环境集成。
安装
dotnet add package TKWF.Domain.Web
配置
// Program.cs
builder.ConfigWebAppDomain<AppUserInfo, AppDomainInitializer>()
.UseWebSession() // Session 中间件
.UseGraphQLApiService<AppUserInfo>() // 或 UseRestApiService
.Build();
中间件管线
HTTP Request
↓
Session 中间件 (.UseWebSession())
├── 提取 Token(Header/Cookie)
├── 验证 Token → 绑定 DomainUser
└── 注入 HttpContext
↓
AOP 边界
↓
Controller / Service 执行
↓
HTTP Response
配置选项
builder.ConfigWebAppDomain<AppUserInfo, AppDomainInitializer>(options =>
{
options.Web = new WebOptions
{
// CORS 配置
CorsOrigins = new[] { "https://app.example.com" },
CorsAllowCredentials = true,
// 全局路由前缀
RoutePrefix = "api/v1",
};
});
错误处理
Web 集成内置全局异常处理中间件,自动将领域异常映射为 HTTP 状态码:
| 异常类型 | HTTP 状态码 |
|---|---|
UnauthorizedAccessException |
401 Unauthorized |
ForbiddenAccessException |
403 Forbidden |
EntityNotFoundException |
404 Not Found |
ValidationException |
422 Unprocessable Entity |
| 其他 | 500 Internal Server Error |