Files
knowai/README.md
tobegold574 c3a8a525cb fix(Doc): 补充提交README的更新记录部分
- 收回对Dockerfile的提交,与其他分支统一
2025-11-14 15:27:15 +08:00

116 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# KnowAI Core
## 概述
KnowAI Core 是前端核心库提供业务逻辑、数据处理和认证功能严格遵循分层架构原则专注于核心功能实现不包含UI交互逻辑。
## 架构设计
### 分层架构
- **Core层**:提供核心业务逻辑、数据处理和状态管理
### 事件驱动设计
为了实现层间解耦,认证模块采用事件驱动架构:
- Core层定义事件类型和事件触发机制
- 上层应用注册事件监听器处理UI交互逻辑
- 避免Core层直接依赖UI层或路由系统
## 核心模块
### API 模块
API模块负责处理所有与后端通信相关的逻辑提供统一的HTTP请求接口和模块化的API服务
#### 核心功能
- **请求工厂**使用工厂模式创建API实例统一配置请求参数
- **拦截器系统**:支持请求/响应拦截器,实现统一的错误处理、日志记录和认证
- **模块化API服务**按功能域划分API服务如用户API、内容API等
- **响应标准化**统一处理API响应格式提供一致的错误处理机制
#### 架构特点
- 基于axios构建支持请求/响应转换
- 自动处理认证令牌附加
- 统一的错误处理和重试机制
- 支持请求取消和超时控制
### Auth 模块
Auth模块提供完整的认证功能管理用户身份验证和授权状态
#### 核心功能
- **令牌管理**:管理访问令牌和刷新令牌,实现自动令牌刷新
- **认证状态管理**:维护用户登录状态,提供状态查询接口
- **事件驱动通知**:通过事件系统通知认证状态变化,如登录、登出、令牌过期等
- **权限控制**:提供基于角色的权限检查功能
#### 架构特点
- 事件驱动的状态通知机制实现与UI层的解耦
- 自动处理令牌过期和刷新流程
- 支持多种认证方式令牌、OAuth等
- 安全的令牌存储机制
### Utils 模块
Utils模块提供常用的工具函数支持数据处理和业务逻辑实现
#### 核心功能
- **数据处理工具**:提供数据转换、过滤、排序等常用数据处理函数
- **字符串处理工具**:提供字符串格式化、验证、转换等工具函数
- **日期处理工具**:提供日期格式化、计算、比较等日期相关函数
- **验证工具**:提供表单验证、数据格式验证等验证函数
#### 架构特点
- 纯函数设计,无副作用,易于测试
- 函数式编程风格,支持链式调用
- 完整的TypeScript类型支持
- 模块化设计,按需导入
### Types 模块
Types模块提供TypeScript类型定义确保整个应用的类型安全
#### 核心功能
- **API相关类型**定义请求参数、响应数据等API相关类型
- **业务实体类型**:定义业务领域中的实体类型,如用户、内容等
- **通用类型定义**:提供通用的工具类型和类型别名
- **事件类型定义**:定义事件系统中使用的事件类型
#### 架构特点
- 严格的类型定义,提供编译时类型检查
- 支持泛型和高级类型特性
- 类型文档完善,提高开发体验
- 与业务逻辑紧密关联,确保类型一致性
## 目录结构
```
knowai-core/
├── api/ # API模块
├── auth/ # 认证模块
├── utils/ # 工具函数模块
├── types/ # 类型定义模块
├── test/ # 测试文件
├── index.ts # 主入口文件
├── package.json # 项目配置
├── tsconfig.json # TypeScript配置
└── vitest.config.ts # 测试配置
```
## 设计原则
1. **关注点分离**业务逻辑与UI逻辑分离Core层专注于核心功能实现
2. **事件驱动**:通过事件系统实现层间解耦,降低模块间耦合度
3. **类型安全**充分利用TypeScript类型系统提供编译时类型检查
4. **模块化**:按功能域组织,按需导入,提高代码复用性
5. **可测试性**:纯函数和依赖注入提高可测试性,确保代码质量
## 更新记录
### 2025-11-10
- 完成tsc eslint vitest测试构建1.0.0镜像并推送
### 2025-11-11
- 因服务器性能原因去除CI pipeline
- 重新整理所有逻辑模块架构完成对应README撰写