584 lines
22 KiB
Markdown
584 lines
22 KiB
Markdown
# API接口文档
|
||
|
||
## 考试相关API
|
||
|
||
### 1. 考试列表
|
||
**前端组件**: `ExamList` (src/features/exam/components/ExamList.tsx)
|
||
**API调用**: `examService.getMyExams()`
|
||
**后端文件**: `exam.controller.ts` -> `getExams`
|
||
**后端路由**: `exam.routes.ts` -> `GET /api/exams`
|
||
**参数**: 无
|
||
**返回数据**:
|
||
- items: 考试列表
|
||
- totalCount: 总数
|
||
- pageIndex: 页码
|
||
- pageSize: 页大小
|
||
|
||
### 2. 获取考试详情
|
||
**前端组件**: `ExamEditor` (src/features/exam/components/ExamEditor.tsx)
|
||
**API调用**: `examService.getExamDetail(examId)`
|
||
**后端文件**: `exam.controller.ts` -> `getExamDetail`
|
||
**后端路由**: `exam.routes.ts` -> `GET /api/exams/:id`
|
||
**参数**: examId (路径参数)
|
||
**返回数据**: 考试详细信息,包括树形结构
|
||
|
||
### 3. 保存考试
|
||
**前端组件**: `ExamEditor` (src/features/exam/components/ExamEditor.tsx)
|
||
**API调用**: `examService.saveExam(exam)`
|
||
**后端文件**: `exam.controller.ts` -> `updateExamStructure` / `createExam`
|
||
**后端路由**: `exam.routes.ts` -> `POST /api/exams` / `PUT /api/exams/:id/structure`
|
||
**参数**:
|
||
- subjectId: 科目ID
|
||
- title: 标题
|
||
- suggestedDuration: 建议时长
|
||
- rootNodes: 树形结构
|
||
- id: 考试ID(更新时需要)
|
||
|
||
### 4. 获取考试统计
|
||
**前端组件**: `ExamStats` (src/features/exam/components/ExamStats.tsx)
|
||
**API调用**: `examService.getStats(examId)`
|
||
**后端文件**: `analytics.controller.ts` -> `getScoreDistribution`
|
||
**后端路由**: `analytics.routes.ts` -> `GET /analytics/distribution`
|
||
**参数**: examId (路径参数)
|
||
**返回数据**:
|
||
- averageScore: 平均分
|
||
- passRate: 及格率
|
||
- maxScore: 最高分
|
||
- minScore: 最低分
|
||
- scoreDistribution: 分数分布
|
||
- wrongQuestions: 错题列表
|
||
|
||
## 认证相关API
|
||
|
||
### 1. 用户登录
|
||
**前端组件**: `LoginForm` (src/features/auth/components/LoginForm.tsx)
|
||
**API调用**: `authService.login(username)`
|
||
**后端文件**: `auth.controller.ts` -> `login`
|
||
**后端路由**: `auth.routes.ts` -> `POST /api/auth/login`
|
||
**参数**: username (邮箱或手机号)
|
||
**返回数据**:
|
||
- token: 认证令牌
|
||
- user: 用户信息
|
||
|
||
### 2. 获取用户信息
|
||
**前端组件**: 多个组件使用
|
||
**API调用**: `authService.me()`
|
||
**后端文件**: `auth.controller.ts` -> `me`
|
||
**后端路由**: `auth.routes.ts` -> `GET /api/auth/me`
|
||
**参数**: 无
|
||
**返回数据**: 用户详细信息
|
||
|
||
### 3. 更新用户资料
|
||
**前端组件**: `ProfileSettings` (src/features/settings/components/ProfileSettings.tsx)
|
||
**API调用**: `authService.updateProfile(data)`
|
||
**后端文件**: `auth.controller.ts` -> `updateProfile`
|
||
**后端路由**: `auth.routes.ts` -> `PUT /api/auth/profile`
|
||
**参数**:
|
||
- name: 姓名
|
||
- email: 邮箱
|
||
- phone: 手机号
|
||
- avatar: 头像
|
||
|
||
### 4. 修改密码
|
||
**前端组件**: `SecuritySettings` (src/features/settings/components/SecuritySettings.tsx)
|
||
**API调用**: `authService.changePassword(data)`
|
||
**后端文件**: `auth.controller.ts` -> `changePassword`
|
||
**后端路由**: `auth.routes.ts` -> `PUT /api/auth/change-password`
|
||
**参数**:
|
||
- oldPassword: 旧密码
|
||
- newPassword: 新密码
|
||
|
||
## 组织/班级相关API
|
||
|
||
### 1. 获取班级列表
|
||
**前端组件**: `ClassCard` (src/features/class/components/ClassCard.tsx)
|
||
**API调用**: `orgService.getClasses(role)`
|
||
**后端文件**: `org.controller.ts` -> `getClasses`
|
||
**后端路由**: `org.routes.ts` -> `GET /api/org/classes`
|
||
**参数**: role (可选,角色过滤)
|
||
**返回数据**: 班级列表
|
||
|
||
### 2. 获取班级成员
|
||
**前端组件**: `ClassSettings` (src/features/class/components/ClassSettings.tsx)
|
||
**API调用**: `orgService.getClassMembers(classId)`
|
||
**后端文件**: `org.controller.ts` -> `getClassMembers`
|
||
**后端路由**: `org.routes.ts` -> `GET /api/org/classes/:classId/members`
|
||
**参数**: classId (路径参数)
|
||
**返回数据**: 班级成员列表
|
||
|
||
### 3. 加入班级
|
||
**前端组件**: `JoinClassModal` (src/features/class/components/JoinClassModal.tsx)
|
||
**API调用**: `orgService.joinClass(inviteCode)`
|
||
**后端文件**: `org.controller.ts` -> `joinClass`
|
||
**后端路由**: `org.routes.ts` -> `POST /api/org/classes/join`
|
||
**参数**: inviteCode (邀请码)
|
||
**返回数据**: 操作结果
|
||
|
||
### 4. 创建班级
|
||
**前端组件**: `CreateClassModal` (src/features/class/components/CreateClassModal.tsx)
|
||
**API调用**: `orgService.createClass(data)`
|
||
**后端文件**: `org.controller.ts` -> `createClass`
|
||
**后端路由**: `org.routes.ts` -> `POST /api/org/classes`
|
||
**参数**:
|
||
- name: 班级名称
|
||
- description: 班级描述
|
||
- grade: 年级
|
||
- subject: 科目
|
||
|
||
## 题库相关API
|
||
|
||
### 1. 搜索题目
|
||
**前端组件**: `QuestionCard` (src/features/question/components/QuestionCard.tsx)
|
||
**API调用**: `questionService.search(filter)`
|
||
**后端文件**: `question.controller.ts` -> `search`
|
||
**后端路由**: `question.routes.ts` -> `POST /api/questions/search`
|
||
**参数**:
|
||
- subjectId: 科目ID
|
||
- difficulty: 难度
|
||
- type: 题型
|
||
- keyword: 关键词
|
||
**返回数据**: 题目列表
|
||
|
||
### 2. 解析文本
|
||
**前端组件**: `ImportModal` (src/features/exam/components/ImportModal.tsx)
|
||
**API调用**: `questionService.parseText(rawText)`
|
||
**后端文件**: `question.controller.ts` -> `parseText`
|
||
**后端路由**: `question.routes.ts` -> `POST /api/questions/parse-text`
|
||
**参数**: text (原始文本)
|
||
**返回数据**: 解析后的题目列表
|
||
|
||
### 3. 创建题目
|
||
**前端组件**: `QuestionModal` (src/features/question/components/QuestionModal.tsx)
|
||
**API调用**: `questionService.create(data)`
|
||
**后端文件**: `question.controller.ts` -> `create`
|
||
**后端路由**: `question.routes.ts` -> `POST /api/questions`
|
||
**参数**:
|
||
- content: 题目内容
|
||
- type: 题型
|
||
- difficulty: 难度
|
||
- answer: 答案
|
||
- explanation: 解析
|
||
- knowledgePoints: 知识点
|
||
|
||
### 4. 更新题目
|
||
**前端组件**: `QuestionModal` (src/features/question/components/QuestionModal.tsx)
|
||
**API调用**: `questionService.update(id, data)`
|
||
**后端文件**: `question.controller.ts` -> `update`
|
||
**后端路由**: `question.routes.ts` -> `PUT /api/questions/:id`
|
||
**参数**:
|
||
- id: 题目ID
|
||
- content: 题目内容
|
||
- type: 题型
|
||
- difficulty: 难度
|
||
- answer: 答案
|
||
- explanation: 解析
|
||
- knowledgePoints: 知识点
|
||
|
||
### 5. 删除题目
|
||
**前端组件**: `QuestionModal` (src/features/question/components/QuestionModal.tsx)
|
||
**API调用**: `questionService.delete(id)`
|
||
**后端文件**: `question.controller.ts` -> `delete`
|
||
**后端路由**: `question.routes.ts` -> `DELETE /api/questions/:id`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 操作结果
|
||
|
||
## 作业相关API
|
||
|
||
### 1. 获取教师作业列表
|
||
**前端组件**: `TeacherAssignmentList` (src/features/assignment/components/TeacherAssignmentList.tsx)
|
||
**API调用**: `assignmentService.getTeachingAssignments()`
|
||
**后端文件**: `assignment.controller.ts` -> `getTeachingAssignments`
|
||
**后端路由**: `assignment.routes.ts` -> `GET /api/assignments/teaching`
|
||
**参数**: 无
|
||
**返回数据**: 教师作业列表
|
||
|
||
### 2. 获取学生作业列表
|
||
**前端组件**: `StudentAssignmentList` (src/features/assignment/components/StudentAssignmentList.tsx)
|
||
**API调用**: `assignmentService.getStudentAssignments()`
|
||
**后端文件**: `assignment.controller.ts` -> `getStudentAssignments`
|
||
**后端路由**: `assignment.routes.ts` -> `GET /api/assignments/learning`
|
||
**参数**: 无
|
||
**返回数据**: 学生作业列表
|
||
|
||
### 3. 发布作业
|
||
**前端组件**: `CreateAssignmentModal` (src/features/assignment/components/CreateAssignmentModal.tsx)
|
||
**API调用**: `assignmentService.publishAssignment(data)`
|
||
**后端文件**: `assignment.controller.ts` -> `publishAssignment`
|
||
**后端路由**: `assignment.routes.ts` -> `POST /api/assignments`
|
||
**参数**:
|
||
- title: 作业标题
|
||
- description: 作业描述
|
||
- classId: 班级ID
|
||
- examId: 考试ID
|
||
- startTime: 开始时间
|
||
- endTime: 结束时间
|
||
|
||
### 4. 获取作业统计
|
||
**前端组件**: `AssignmentStats` (src/features/assignment/components/AssignmentStats.tsx)
|
||
**API调用**: `assignmentService.getAssignmentStats(id)`
|
||
**后端文件**: `assignment.controller.ts` -> `getAssignmentStats`
|
||
**后端路由**: `assignment.routes.ts` -> `GET /api/assignments/:id/stats`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 作业统计数据
|
||
|
||
## 批改相关API
|
||
|
||
### 1. 获取提交列表
|
||
**前端组件**: `GradingBoard` (src/features/grading/components/GradingBoard.tsx)
|
||
**API调用**: `gradingService.getSubmissions(assignmentId)`
|
||
**后端文件**: `grading.controller.ts` -> `getSubmissions`
|
||
**后端路由**: `grading.routes.ts` -> `GET /api/grading/:assignmentId/list`
|
||
**参数**: assignmentId (路径参数)
|
||
**返回数据**: 提交列表
|
||
|
||
### 2. 获取试卷
|
||
**前端组件**: `GradingBoard` (src/features/grading/components/GradingBoard.tsx)
|
||
**API调用**: `gradingService.getPaper(submissionId)`
|
||
**后端文件**: `grading.controller.ts` -> `getPaper`
|
||
**后端路由**: `grading.routes.ts` -> `GET /api/grading/submissions/:submissionId`
|
||
**参数**: submissionId (路径参数)
|
||
**返回数据**: 试卷详情
|
||
|
||
## 提交相关API
|
||
|
||
### 1. 获取学生试卷
|
||
**前端组件**: `StudentExamRunner` (src/views/StudentExamRunner.tsx)
|
||
**API调用**: `submissionService.getStudentPaper(id)`
|
||
**后端文件**: `submission.controller.ts` -> `getStudentPaper`
|
||
**后端路由**: `submission.routes.ts` -> `GET /api/submissions/:id/paper`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 学生试卷详情
|
||
|
||
### 2. 提交考试
|
||
**前端组件**: `StudentExamRunner` (src/views/StudentExamRunner.tsx)
|
||
**API调用**: `submissionService.submitExam(data)`
|
||
**后端文件**: `submission.controller.ts` -> `submitExam`
|
||
**后端路由**: `submission.routes.ts` -> `POST /api/submissions/:assignmentId/submit`
|
||
**参数**:
|
||
- assignmentId: 作业ID
|
||
- answers: 答案
|
||
- submitTime: 提交时间
|
||
|
||
### 3. 获取提交结果
|
||
**前端组件**: `StudentResult` (src/views/StudentResult.tsx)
|
||
**API调用**: `submissionService.getSubmissionResult(assignmentId)`
|
||
**后端文件**: `submission.controller.ts` -> `getSubmissionResult`
|
||
**后端路由**: `submission.routes.ts` -> `GET /api/submissions/:assignmentId/result`
|
||
**参数**: assignmentId (路径参数)
|
||
**返回数据**: 提交结果详情
|
||
|
||
## 分析统计API
|
||
|
||
### 1. 获取班级表现
|
||
**前端组件**: `ClassAnalysis` (src/features/class/components/ClassAnalysis.tsx)
|
||
**API调用**: `analyticsService.getClassPerformance()`
|
||
**后端文件**: `analytics.controller.ts` -> `getClassPerformance`
|
||
**后端路由**: `analytics.routes.ts` -> `GET /api/analytics/class/performance`
|
||
**参数**: 无
|
||
**返回数据**: 班级表现数据
|
||
|
||
### 2. 获取学生成长
|
||
**前端组件**: `StudentDashboard` (src/features/dashboard/components/StudentDashboard.tsx)
|
||
**API调用**: `analyticsService.getStudentGrowth()`
|
||
**后端文件**: `analytics.controller.ts` -> `getStudentGrowth`
|
||
**后端路由**: `analytics.routes.ts` -> `GET /api/analytics/student/growth`
|
||
**参数**: 无
|
||
**返回数据**: 学生成长数据
|
||
|
||
### 3. 获取能力雷达图
|
||
**前端组件**: `TeacherDashboard` (src/features/dashboard/components/TeacherDashboard.tsx)
|
||
**API调用**: `analyticsService.getRadar()`
|
||
**后端文件**: `analytics.controller.ts` -> `getRadar`
|
||
**后端路由**: `analytics.routes.ts` -> `GET /api/analytics/radar`
|
||
**参数**: 无
|
||
**返回数据**: 能力雷达图数据
|
||
|
||
### 4. 获取学生能力雷达图
|
||
**前端组件**: `StudentDashboard` (src/features/dashboard/components/StudentDashboard.tsx)
|
||
**API调用**: `analyticsService.getStudentRadar()`
|
||
**后端文件**: `analytics.controller.ts` -> `getStudentRadar`
|
||
**后端路由**: `analytics.routes.ts` -> `GET /api/analytics/student/radar`
|
||
**参数**: 无
|
||
**返回数据**: 学生能力雷达图数据
|
||
|
||
### 5. 获取成绩分布
|
||
**前端组件**: `TeacherDashboard` (src/features/dashboard/components/TeacherDashboard.tsx)
|
||
**API调用**: `analyticsService.getScoreDistribution()`
|
||
**后端文件**: `analytics.controller.ts` -> `getScoreDistribution`
|
||
**后端路由**: `analytics.routes.ts` -> `GET /api/analytics/distribution`
|
||
**参数**: 无
|
||
**返回数据**: 成绩分布数据
|
||
|
||
### 6. 获取教师统计数据
|
||
**前端组件**: `TeacherDashboard` (src/features/dashboard/components/TeacherDashboard.tsx)
|
||
**API调用**: `analyticsService.getTeacherStats()`
|
||
**后端文件**: `analytics.controller.ts` -> `getTeacherStats`
|
||
**后端路由**: `analytics.routes.ts` -> `GET /api/analytics/teacher-stats`
|
||
**参数**: 无
|
||
**返回数据**: 教师统计数据
|
||
|
||
## 课程相关API
|
||
|
||
### 1. 获取科目列表
|
||
**前端组件**: `SubjectSelector` (src/features/question/components/SubjectSelector.tsx)
|
||
**API调用**: `curriculumService.getSubjects()`
|
||
**后端文件**: `curriculum.controller.ts` -> `getSubjects`
|
||
**后端路由**: `curriculum.routes.ts` -> `GET /api/curriculum/subjects`
|
||
**参数**: 无
|
||
**返回数据**: 科目列表
|
||
|
||
### 2. 获取教材树
|
||
**前端组件**: `KnowledgeGraph` (src/features/curriculum/components/KnowledgeGraph.tsx)
|
||
**API调用**: `curriculumService.getTree(id)`
|
||
**后端文件**: `curriculum.controller.ts` -> `getTree
|
||
**后端路由**: `curriculum.routes.ts` -> `GET /api/curriculum/textbooks/:id/tree`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 教材树形结构
|
||
|
||
### 3. 获取科目教材
|
||
**前端组件**: `TextbookModal` (src/features/curriculum/components/TextbookModal.tsx)
|
||
**API调用**: `curriculumService.getTextbooksBySubject(subjectId)`
|
||
**后端文件**: `curriculum.controller.ts` -> `getTextbooksBySubject`
|
||
**后端路由**: `curriculum.routes.ts` -> `GET /api/curriculum/subjects/:subjectId/textbooks`
|
||
**参数**: subjectId (路径参数)
|
||
**返回数据**: 教材列表
|
||
|
||
### 4. 创建教材
|
||
**前端组件**: `TextbookModal` (src/features/curriculum/components/TextbookModal.tsx)
|
||
**API调用**: `curriculumService.createTextbook(data)`
|
||
**后端文件**: `curriculum.controller.ts` -> `createTextbook`
|
||
**后端路由**: `curriculum.routes.ts` -> `POST /api/curriculum/textbooks`
|
||
**参数**:
|
||
- name: 教材名称
|
||
- subjectId: 科目ID
|
||
- description: 教材描述
|
||
|
||
### 5. 更新教材
|
||
**前端组件**: `TextbookModal` (src/features/curriculum/components/TextbookModal.tsx)
|
||
**API调用**: `curriculumService.updateTextbook(id, data)`
|
||
**后端文件**: `curriculum.controller.ts` -> `updateTextbook`
|
||
**后端路由**: `curriculum.routes.ts` -> `PUT /api/curriculum/textbooks/:id`
|
||
**参数**:
|
||
- id: 教材ID
|
||
- name: 教材名称
|
||
- subjectId: 科目ID
|
||
- description: 教材描述
|
||
|
||
### 6. 删除教材
|
||
**前端组件**: `TextbookModal` (src/features/curriculum/components/TextbookModal.tsx)
|
||
**API调用**: `curriculumService.deleteTextbook(id)`
|
||
**后端文件**: `curriculum.controller.ts` -> `deleteTextbook`
|
||
**后端路由**: `curriculum.routes.ts` -> `DELETE /api/curriculum/textbooks/:id`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 操作结果
|
||
|
||
### 7. 创建单元
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.createUnit(data)`
|
||
**后端文件**: `curriculum.controller.ts` -> `createUnit
|
||
**后端路由**: `curriculum.routes.ts` -> `POST /api/curriculum/units`
|
||
**参数**:
|
||
- name: 单元名称
|
||
- textbookId: 教材ID
|
||
- description: 单元描述
|
||
|
||
### 8. 更新单元
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.updateUnit(id, data)`
|
||
**后端文件**: `curriculum.controller.ts` -> `updateUnit
|
||
**后端路由**: `curriculum.routes.ts` -> `PUT /api/curriculum/units/:id`
|
||
**参数**:
|
||
- id: 单元ID
|
||
- name: 单元名称
|
||
- textbookId: 教材ID
|
||
- description: 单元描述
|
||
|
||
### 9. 删除单元
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.deleteUnit(id)`
|
||
**后端文件**: `curriculum.controller.ts` -> `deleteUnit
|
||
**后端路由**: `curriculum.routes.ts` -> `DELETE /api/curriculum/units/:id`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 操作结果
|
||
|
||
### 10. 创建课时
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.createLesson(data)`
|
||
**后端文件**: `curriculum.controller.ts` -> `createLesson
|
||
**后端路由**: `curriculum.routes.ts` -> `POST /api/curriculum/lessons`
|
||
**参数**:
|
||
- name: 课时名称
|
||
- unitId: 单元ID
|
||
- description: 课时描述
|
||
|
||
### 11. 更新课时
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.updateLesson(id, data)`
|
||
**后端文件**: `curriculum.controller.ts` -> `updateLesson
|
||
**后端路由**: `curriculum.routes.ts` -> `PUT /api/curriculum/lessons/:id`
|
||
**参数**:
|
||
- id: 课时ID
|
||
- name: 课时名称
|
||
- unitId: 单元ID
|
||
- description: 课时描述
|
||
|
||
### 12. 删除课时
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.deleteLesson(id)`
|
||
**后端文件**: `curriculum.controller.ts` -> `deleteLesson
|
||
**后端路由**: `curriculum.routes.ts` -> `DELETE /api/curriculum/lessons/:id`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 操作结果
|
||
|
||
### 13. 创建知识点
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.createKnowledgePoint(data)`
|
||
**后端文件**: `curriculum.controller.ts` -> `createKnowledgePoint
|
||
**后端路由**: `curriculum.routes.ts` -> `POST /api/curriculum/knowledge-points`
|
||
**参数**:
|
||
- name: 知识点名称
|
||
- lessonId: 课时ID
|
||
- description: 知识点描述
|
||
|
||
### 14. 更新知识点
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.updateKnowledgePoint(id, data)`
|
||
**后端文件**: `curriculum.controller.ts` -> `updateKnowledgePoint
|
||
**后端路由**: `curriculum.routes.ts` -> `PUT /api/curriculum/knowledge-points/:id`
|
||
**参数**:
|
||
- id: 知识点ID
|
||
- name: 知识点名称
|
||
- lessonId: 课时ID
|
||
- description: 知识点描述
|
||
|
||
### 15. 删除知识点
|
||
**前端组件**: `CurriculumNodeModal` (src/features/curriculum/components/CurriculumNodeModal.tsx)
|
||
**API调用**: `curriculumService.deleteKnowledgePoint(id)`
|
||
**后端文件**: `curriculum.controller.ts` -> `deleteKnowledgePoint
|
||
**后端路由**: `curriculum.routes.ts` -> `DELETE /api/curriculum/knowledge-points/:id`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 操作结果
|
||
|
||
## 消息相关API
|
||
|
||
### 1. 获取消息列表
|
||
**前端组件**: `NotificationList` (src/features/dashboard/components/NotificationList.tsx)
|
||
**API调用**: `messageService.getMessages()`
|
||
**后端文件**: `message.controller.ts` -> `getMessages`
|
||
**后端路由**: `message.routes.ts` -> `GET /api/common/messages`
|
||
**参数**: 无
|
||
**返回数据**: 消息列表
|
||
|
||
### 2. 标记已读
|
||
**前端组件**: `NotificationList` (src/features/dashboard/components/NotificationList.tsx)
|
||
**API调用**: `messageService.markAsRead(id)`
|
||
**后端文件**: `message.controller.ts` -> `markAsRead
|
||
**后端路由**: `message.routes.ts` -> `POST /api/common/messages/:id/read`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 操作结果
|
||
|
||
### 3. 创建消息
|
||
**前端组件**: `CreateMessageModal` (src/features/message/components/CreateMessageModal.tsx)
|
||
**API调用**: `messageService.createMessage(data)`
|
||
**后端文件**: `message.controller.ts` -> `createMessage
|
||
**后端路由**: `message.routes.ts` -> `POST /api/common/messages`
|
||
**参数**:
|
||
- title: 消息标题
|
||
- content: 消息内容
|
||
- type: 消息类型
|
||
- recipientIds: 接收者ID列表
|
||
|
||
## 日程相关API
|
||
|
||
### 1. 获取日程
|
||
**前端组件**: `ScheduleList` (src/features/dashboard/components/ScheduleList.tsx)
|
||
**API调用**: `scheduleService.getWeekSchedule()`
|
||
**后端文件**: `schedule.controller.ts` -> `getWeekSchedule
|
||
**后端路由**: `schedule.routes.ts` -> `GET /api/common/schedule/week`
|
||
**参数**: 无
|
||
**返回数据**: 周日程数据
|
||
|
||
### 2. 添加日程
|
||
**前端组件**: `EventModal` (src/features/schedule/components/EventModal.tsx)
|
||
**API调用**: `scheduleService.addEvent(data)`
|
||
**后端文件**: `schedule.controller.ts` -> `addEvent
|
||
**后端路由**: `schedule.routes.ts` -> `POST /api/common/schedule`
|
||
**参数**:
|
||
- title: 日程标题
|
||
- startTime: 开始时间
|
||
- endTime: 结束时间
|
||
- type: 日程类型
|
||
- description: 日程描述
|
||
|
||
### 3. 删除日程
|
||
**前端组件**: `EventModal` (src/features/schedule/components/EventModal.tsx)
|
||
**API调用**: `scheduleService.deleteEvent(id)`
|
||
**后端文件**: `schedule.controller.ts` -> `deleteEvent
|
||
**后端路由**: `schedule.routes.ts` -> `DELETE /api/common/schedule/:id`
|
||
**参数**: id (路径参数)
|
||
**返回数据**: 操作结果
|
||
|
||
## 公共API
|
||
|
||
### 1. 获取日程
|
||
**前端组件**: `Timetable` (src/features/schedule/components/Timetable.tsx)
|
||
**API调用**: `commonService.getSchedule()`
|
||
**后端文件**: `common.controller.ts` -> `getSchedule
|
||
**后端路由**: `common.routes.ts` -> `GET /api/common/schedule`
|
||
**参数**: 无
|
||
**返回数据**: 日程数据
|
||
|
||
## 未实现的API
|
||
|
||
### 1. 考试节点管理
|
||
**需要实现**:
|
||
- 添加考试节点: `POST /api/exams/:id/nodes`
|
||
- 更新考试节点: `PUT /api/exams/:id/nodes/:nodeId`
|
||
- 删除考试节点: `DELETE /api/exams/:id/nodes/:nodeId`
|
||
|
||
### 2. 更新考试基本信息
|
||
**需要实现**:
|
||
- 更新考试: `PUT /api/exams/:id`
|
||
|
||
### 3. 删除考试
|
||
**需要实现**:
|
||
- 删除考试: `DELETE /api/exams/:id`
|
||
|
||
### 4. 作业管理
|
||
**需要实现**:
|
||
- 获取作业详情: `GET /api/assignments/:id`
|
||
- 更新作业: `PUT /api/assignments/:id`
|
||
- 删除作业: `DELETE /api/assignments/:id`
|
||
|
||
### 5. 批改管理
|
||
**需要实现**:
|
||
- 保存批改结果: `POST /api/grading/submissions/:submissionId/grade`
|
||
- 获取批改详情: `GET /api/grading/submissions/:submissionId/grade`
|
||
|
||
### 6. 提交管理
|
||
**需要实现**:
|
||
- 获取提交列表: `GET /api/submissions`
|
||
- 更新提交状态: `PUT /api/submissions/:id`
|
||
- 删除提交: `DELETE /api/submissions/:id`
|
||
|
||
### 7. 课程管理
|
||
**需要实现**:
|
||
- 获取单元详情: `GET /api/curriculum/units/:id`
|
||
- 获取课时详情: `GET /api/curriculum/lessons/:id`
|
||
- 获取知识点详情: `GET /api/curriculum/knowledge-points/:id`
|
||
|
||
### 8. 消息管理
|
||
**需要实现**:
|
||
- 获取消息详情: `GET /api/common/messages/:id`
|
||
- 更新消息: `PUT /api/common/messages/:id`
|
||
- 删除消息: `DELETE /api/common/messages/:id`
|
||
|
||
### 9. 日程管理
|
||
**需要实现**:
|
||
- 获取日程详情: `GET /api/common/schedule/:id`
|
||
- 更新日程: `PUT /api/common/schedule/:id`
|
||
|
||
### 10. 公共管理
|
||
**需要实现**:
|
||
- 其他公共接口
|