Files
Nexus_Edu/API_BCK.md
2025-11-28 19:23:19 +08:00

22 KiB
Raw Permalink Blame History

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. 公共管理

需要实现:

  • 其他公共接口