6-components.md 2.4 KB

6. Components

基于架构模式、技术栈和数据模型,识别全栈中的主要逻辑组件/服务:

6.1 认证服务 (AuthService)

责任: 处理用户认证、注册、JWT令牌生成和验证 关键接口:

  • login(email: string, password: string): Promise<AuthResponse>
  • register(userData: RegisterData): Promise<AuthResponse>
  • verifyToken(token: string): Promise<User>
  • logout(token: string): Promise<void> 依赖: UserService、Redis(令牌管理) 技术栈: Hono中间件、bcrypt、jsonwebtoken、Redis客户端

6.2 用户服务 (UserService)

责任: 管理用户CRUD操作、权限验证和用户状态管理 关键接口:

  • getUsers(query: UserQuery): Promise<User[]>
  • getUserById(id: string): Promise<User>
  • createUser(userData: CreateUserData): Promise<User>
  • updateUser(id: string, updates: Partial<User>): Promise<User>
  • deleteUser(id: string): Promise<void> 依赖: 数据库(TypeORM)、RoleService 技术栈: TypeORM Repository模式、数据验证

6.3 通用CRUD服务 (GenericCRUDService)

责任: 提供通用的CRUD操作基类,支持快速创建实体服务 关键接口:

  • findAll(query: PaginationQuery): Promise<Entity[]>
  • findById(id: string): Promise<Entity>
  • create(data: CreateDTO): Promise<Entity>
  • update(id: string, data: UpdateDTO): Promise<Entity>
  • delete(id: string): Promise<void> 依赖: TypeORM Repository、Zod验证 技术栈: TypeORM泛型、类继承、装饰器模式

6.4 通用CRUD路由 (GenericCRUDRouter)

责任: 自动生成标准RESTful路由,支持通用CRUD操作 关键接口:

  • GET /entity - 获取列表(支持分页、过滤、排序)
  • GET /entity/:id - 获取单个实体
  • POST /entity - 创建实体
  • PUT /entity/:id - 更新实体
  • DELETE /entity/:id - 删除实体 依赖: GenericCRUDService、Zod验证 技术栈: Hono路由工厂、OpenAPI自动生成

6.5 组件关系图

flowchart TB
    Frontend[前端应用] --> APIGateway[API网关]

    APIGateway --> AuthService[认证服务]
    APIGateway --> UserService[用户服务]
    APIGateway --> RoleService[角色服务]

    AuthService --> Redis[Redis缓存]
    UserService --> DB[(MySQL数据库)]
    RoleService --> DB

    AuthService --> UserService
    UserService --> RoleService