- STACK.md - 技术栈和依赖 - INTEGRATIONS.md - 外部集成 - ARCHITECTURE.md - 架构设计 - STRUCTURE.md - 代码库结构 - CONVENTIONS.md - 编码规范 - TESTING.md - 测试模式 - CONCERNS.md - 技术债务和问题
3.0 KiB
3.0 KiB
架构
分析日期: 2026-02-28
模式概述
整体: 分层架构 + 领域驱动设计 (DDD)
关键特性:
- 控制器层 (Controllers) - 处理 HTTP 请求,返回 API 响应
- 服务层 (Services) - 业务逻辑实现,使用依赖注入
- 数据访问层 - 通过 Entity Framework Core 访问数据库
- 领域模型 - 来自外部 Domain 程序集 (Fengling.Platform.Domain)
层次
控制器层 (Controllers):
- 位置:
src/Controllers/ - 包含:
UsersController.cs,RolesController.cs,TenantsController.cs,OAuthClientsController.cs,GatewayController.cs - 职责:处理 HTTP 请求、参数验证、返回响应
- 依赖:Service 层接口
服务层 (Services):
- 位置:
src/Services/ - 包含:
UserService.cs,RoleService.cs,TenantService.cs,OAuthClientService.cs,GatewayService.cs,H5LinkService.cs - 职责:业务逻辑实现、数据转换、事务管理
- 依赖:Domain 模型、DbContext、UserManager、RoleManager
数据层 (Data/Infrastructure):
- PlatformDbContext - 平台业务数据
- GatewayDbContext - 网关配置数据
- 仓储模式:通过 NetCorePal.Extensions.Repository
领域层 (Domain - 外部引用):
- Fengling.Platform.Domain.AggregatesModel.UserAggregate
- Fengling.Platform.Domain.AggregatesModel.RoleAggregate
- Fengling.Platform.Domain.AggregatesModel.TenantAggregate
数据流
典型请求流程:
- HTTP 请求 → Controller 接收
- 参数验证 → DTO 绑定
- 业务处理 → Service 层执行
- 数据持久化 → EF Core 保存
- 响应返回 → Controller 返回结果
状态管理:
- 无状态 API 设计
- 状态存储在 PostgreSQL 数据库
- 认证状态通过 JWT Token 传递
关键抽象
服务接口:
IUserService- 用户管理IRoleService- 角色管理ITenantService- 租户管理IOAuthClientService- OAuth 客户端管理IGatewayService- 网关配置IH5LinkService- H5 链接服务
数据传输对象 (DTO):
- 位置:
src/Models/Dtos/ - 模式:CreateXxxDto, UpdateXxxDto, XxxDto, XxxQueryDto
- 用途:API 请求/响应数据结构
入口点
主入口:
- 位置:
src/Program.cs - 触发:应用启动时执行
- 职责:服务注册、中间件配置、管道构建
API 端点:
/api/console/[controller]- RESTful API 前缀/swagger- API 文档
错误处理
策略:
- 异常捕获 + 日志记录
- 返回标准 HTTP 状态码
- 错误详情通过响应体返回
模式:
try {
// 业务逻辑
} catch (KeyNotFoundException ex) {
return NotFound();
} catch (InvalidOperationException ex) {
return BadRequest();
} catch (Exception ex) {
_logger.LogError(ex, "...");
return StatusCode(500);
}
跨领域关注
日志: Microsoft.Extensions.Logging + ILogger 验证: ASP.NET Core Model Validation + FluentValidation (已引用) 认证: OpenIddict + JWT Bearer
架构分析:2026-02-28