22 KiB
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. 公共管理
需要实现:
- 其他公共接口