# 6. Components 基于架构模式、技术栈和数据模型,识别全栈中的主要逻辑组件/服务: ## 6.1 认证服务 (AuthService) **责任:** 处理用户认证、注册、JWT令牌生成和验证 **关键接口:** - `login(email: string, password: string): Promise` - `register(userData: RegisterData): Promise` - `verifyToken(token: string): Promise` - `logout(token: string): Promise` **依赖:** UserService、Redis(令牌管理) **技术栈:** Hono中间件、bcrypt、jsonwebtoken、Redis客户端 ## 6.2 用户服务 (UserService) **责任:** 管理用户CRUD操作、权限验证和用户状态管理 **关键接口:** - `getUsers(query: UserQuery): Promise` - `getUserById(id: string): Promise` - `createUser(userData: CreateUserData): Promise` - `updateUser(id: string, updates: Partial): Promise` - `deleteUser(id: string): Promise` **依赖:** 数据库(TypeORM)、RoleService **技术栈:** TypeORM Repository模式、数据验证 ## 6.3 通用CRUD服务 (GenericCRUDService) **责任:** 提供通用的CRUD操作基类,支持快速创建实体服务 **关键接口:** - `findAll(query: PaginationQuery): Promise` - `findById(id: string): Promise` - `create(data: CreateDTO): Promise` - `update(id: string, data: UpdateDTO): Promise` - `delete(id: string): Promise` **依赖:** 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 组件关系图 ```mermaid flowchart TB Frontend[前端应用] --> APIGateway[API网关] APIGateway --> AuthService[认证服务] APIGateway --> UserService[用户服务] APIGateway --> RoleService[角色服务] AuthService --> Redis[Redis缓存] UserService --> DB[(MySQL数据库)] RoleService --> DB AuthService --> UserService UserService --> RoleService ```