feat: 第一次生成
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
---
|
||||
description: API接口相关规范
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# API接口规范
|
||||
|
||||
## 接口设计原则
|
||||
1. 遵循 RESTful 设计规范
|
||||
2. 使用 HTTPS 协议
|
||||
3. 版本控制
|
||||
4. 统一的响应格式
|
||||
|
||||
## 请求规范
|
||||
### 请求方法
|
||||
- GET: 获取资源
|
||||
- POST: 创建资源
|
||||
- PUT: 更新资源
|
||||
- DELETE: 删除资源
|
||||
|
||||
### 请求头
|
||||
```
|
||||
Content-Type: application/json
|
||||
Authorization: Bearer {token}
|
||||
```
|
||||
|
||||
### 请求参数
|
||||
1. GET 请求参数使用 query string
|
||||
2. POST/PUT 请求参数使用 JSON 格式
|
||||
3. 分页参数统一使用 page 和 pageSize
|
||||
|
||||
## 响应规范
|
||||
### 响应格式
|
||||
```json
|
||||
{
|
||||
"code": 0, // 状态码
|
||||
"message": "success", // 状态信息
|
||||
"data": { // 响应数据
|
||||
// 具体数据
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 状态码
|
||||
- 200: 成功
|
||||
- 400: 请求参数错误
|
||||
- 401: 未授权
|
||||
- 403: 禁止访问
|
||||
- 404: 资源不存在
|
||||
- 500: 服务器错误
|
||||
|
||||
## 接口文档
|
||||
1. 使用 OpenAPI (Swagger) 规范
|
||||
2. 必须包含接口描述、参数说明、响应示例
|
||||
3. 及时更新文档
|
||||
|
||||
## 错误处理
|
||||
1. 统一的错误响应格式
|
||||
2. 详细的错误信息
|
||||
3. 错误码规范
|
||||
|
||||
## 安全规范
|
||||
1. 所有接口必须进行身份验证
|
||||
2. 敏感数据传输加密
|
||||
3. 实现请求频率限制
|
||||
4. 防止 SQL 注入和 XSS 攻击
|
||||
|
||||
## 缓存策略
|
||||
1. 合理使用 HTTP 缓存头
|
||||
2. 实现 ETag
|
||||
3. 设置适当的缓存时间
|
||||
|
||||
## 性能优化
|
||||
1. 接口响应时间控制
|
||||
2. 数据压缩
|
||||
3. 分页查询
|
||||
|
||||
4. 按需加载
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
description: 后端开发规范
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# 后端开发规范
|
||||
|
||||
## 技术栈
|
||||
- Express.js (TypeScript模式)
|
||||
- TypeScript
|
||||
- Prisma (ORM)
|
||||
- Redis
|
||||
- MySQL 8.0
|
||||
|
||||
## 目录结构规范
|
||||
```
|
||||
backend/
|
||||
├── src/
|
||||
│ ├── controllers/ # 控制器
|
||||
│ ├── services/ # 业务逻辑
|
||||
│ ├── models/ # 数据模型
|
||||
│ ├── middlewares/ # 中间件
|
||||
│ ├── utils/ # 工具函数
|
||||
│ ├── types/ # TypeScript类型定义
|
||||
│ └── config/ # 配置文件
|
||||
└── prisma/ # Prisma schema和迁移文件
|
||||
```
|
||||
|
||||
## 代码规范
|
||||
1. 使用 TypeScript 严格模式
|
||||
2. 遵循 RESTful API 设计规范
|
||||
3. 使用 async/await 处理异步操作
|
||||
4. 统一的错误处理机制
|
||||
|
||||
## 数据库规范
|
||||
1. 使用 Prisma 进行数据库操作
|
||||
2. 所有数据库操作必须使用事务
|
||||
3. 合理使用索引
|
||||
4. 避免 N+1 查询问题
|
||||
|
||||
## 缓存策略
|
||||
1. 使用 Redis 进行缓存
|
||||
2. 缓存键命名规范:`{module}:{id}:{type}`
|
||||
3. 设置合理的缓存过期时间
|
||||
4. 实现缓存预热机制
|
||||
|
||||
## 错误处理
|
||||
1. 统一的错误响应格式
|
||||
2. 详细的错误日志记录
|
||||
3. 区分业务错误和系统错误
|
||||
4. 实现错误监控和告警
|
||||
|
||||
## 安全规范
|
||||
1. 所有用户输入必须验证
|
||||
2. 敏感数据加密存储
|
||||
3. 实现请求频率限制
|
||||
4. 使用 HTTPS
|
||||
5. 实现 CORS 策略
|
||||
|
||||
## 日志规范
|
||||
1. 使用 Winston 记录日志
|
||||
2. 区分不同级别的日志
|
||||
3. 记录关键操作日志
|
||||
4. 实现日志轮转
|
||||
|
||||
## 测试规范
|
||||
1. 单元测试覆盖率要求
|
||||
2. 集成测试
|
||||
3. API 测试
|
||||
4. 性能测试
|
||||
|
||||
## 部署规范
|
||||
1. 使用 Docker 容器化
|
||||
2. 环境变量配置
|
||||
3. 健康检查
|
||||
|
||||
4. 监控指标
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
description:
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# 数据库设计规范
|
||||
|
||||
## 数据库选型
|
||||
- 主数据库:MySQL 8.0
|
||||
- ORM:Prisma
|
||||
- 缓存:Redis
|
||||
|
||||
## 命名规范
|
||||
1. 表名使用小写字母,下划线分隔
|
||||
2. 字段名使用小写字母,下划线分隔
|
||||
3. 主键统一命名为 id
|
||||
4. 外键命名格式:{表名}_id
|
||||
5. 索引命名格式:idx_{表名}_{字段名}
|
||||
|
||||
## 字段规范
|
||||
1. 必须包含 id、created_at、updated_at 字段
|
||||
2. 使用合适的数据类型
|
||||
3. 字段必须添加注释
|
||||
4. 设置合理的默认值
|
||||
5. 使用 NOT NULL 约束
|
||||
|
||||
## 索引规范
|
||||
1. 主键使用自增ID
|
||||
2. 合理使用唯一索引
|
||||
3. 避免过多索引
|
||||
4. 考虑索引的选择性
|
||||
|
||||
## 表关系规范
|
||||
1. 使用外键约束
|
||||
2. 合理设计表关系
|
||||
3. 避免过度规范化
|
||||
4. 考虑查询性能
|
||||
|
||||
## 查询优化
|
||||
1. 避免 SELECT *
|
||||
2. 使用适当的索引
|
||||
3. 避免大事务
|
||||
4. 合理使用分页
|
||||
|
||||
## 数据安全
|
||||
1. 敏感数据加密
|
||||
2. 定期备份
|
||||
3. 访问权限控制
|
||||
4. 审计日志
|
||||
|
||||
## 性能优化
|
||||
1. 表分区策略
|
||||
2. 读写分离
|
||||
3. 缓存策略
|
||||
4. 定期维护
|
||||
|
||||
## 迁移规范
|
||||
1. 使用 Prisma 迁移
|
||||
2. 版本控制
|
||||
3. 回滚机制
|
||||
4. 测试验证
|
||||
|
||||
## 监控规范
|
||||
1. 性能监控
|
||||
2. 容量监控
|
||||
3. 慢查询监控
|
||||
|
||||
4. 异常监控
|
||||
@@ -0,0 +1,60 @@
|
||||
---
|
||||
description: 前端开发规范
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# 前端开发规范
|
||||
|
||||
## 技术栈
|
||||
- Nuxt.js (TypeScript模式)
|
||||
- Vue 3
|
||||
- TypeScript
|
||||
|
||||
## 目录结构规范
|
||||
```
|
||||
frontend/
|
||||
├── components/ # 可复用组件
|
||||
├── pages/ # 页面组件
|
||||
├── composables/ # 组合式函数
|
||||
├── types/ # TypeScript类型定义
|
||||
├── utils/ # 工具函数
|
||||
└── assets/ # 静态资源
|
||||
```
|
||||
|
||||
## 命名规范
|
||||
1. 组件文件使用 PascalCase 命名
|
||||
2. 工具函数和组合式函数使用 camelCase 命名
|
||||
3. 类型定义使用 PascalCase 并以 Type 或 Interface 结尾
|
||||
|
||||
## 组件开发规范
|
||||
1. 使用组合式API (Composition API)
|
||||
2. 组件必须使用 TypeScript
|
||||
3. Props 必须定义类型和默认值
|
||||
4. 组件必须包含适当的注释说明
|
||||
|
||||
## 状态管理
|
||||
1. 使用 Pinia 进行状态管理
|
||||
2. 按功能模块划分 store
|
||||
3. 避免在组件中直接修改 store 状态
|
||||
|
||||
## 样式规范
|
||||
1. 使用 SCSS 预处理器
|
||||
2. 遵循 BEM 命名规范
|
||||
3. 优先使用 Tailwind CSS 工具类
|
||||
|
||||
## 性能优化
|
||||
1. 组件按需加载
|
||||
2. 合理使用缓存
|
||||
3. 图片资源优化
|
||||
4. 避免不必要的重渲染
|
||||
|
||||
## 错误处理
|
||||
1. 统一的错误处理机制
|
||||
2. 友好的错误提示
|
||||
3. 网络请求错误处理
|
||||
|
||||
## 代码质量
|
||||
1. 使用 ESLint 进行代码检查
|
||||
2. 使用 Prettier 进行代码格式化
|
||||
|
||||
3. 提交前进行代码审查
|
||||
Reference in New Issue
Block a user