← 返回项目

接口需求清单

慢病健康管理—癌症筛查与早诊培训项目

接口总数:32 WebSocket:3

目录

  1. 接口总览
  2. 用户认证模块
  3. 课程管理模块
  4. 学习进度模块
  5. 在线答疑模块
  6. 作业管理模块
  7. 考试管理模块
  8. 认证管理模块
  9. 管理员模块
  10. 文件与视频模块
  11. WebSocket 事件
  12. 标准错误码

1接口总览

模块接口数GETPOSTPUTDELETE适用角色
用户认证41210专家/学员/管理员
课程管理63210专家/学员/管理员
学习进度32100学员
在线答疑42200专家/学员
作业管理42110专家/学员
考试管理42200专家/学员
认证管理21100管理员/学员
管理员功能31110管理员
文件与视频20200专家/管理员
合计32141440—

通用约定

2用户认证模块

编号接口名称方法路径鉴权角色说明
API-001用户登录POST/auth/login否全部手机号+密码/验证码登录,返回 token 和用户信息
API-002获取当前用户信息GET/auth/profile是全部获取当前登录用户的详细信息(姓名、角色、所属基地、资质等)
API-003更新个人信息PUT/auth/profile是全部更新头像、联系方式、所属单位等个人信息
API-004发送验证码POST/auth/sms-code否全部向指定手机号发送短信验证码,用于登录或找回密码

API-001 用户登录 - 请求参数

phonestring 必填手机号,11位数字
passwordstring 可选密码(密码登录时必填),MD5加密
sms_codestring 可选短信验证码(验证码登录时必填)
login_typestring 必填登录类型:password / sms
rolestring 必填登录角色:expert / student / admin

API-001 用户登录 - 响应示例

{ "code": 0, "message": "success", "data": { "token": "eyJhbGciOiJIUzI1NiIs...(JWT Token)", "expires_in": 86400, "user": { "id": "u_100001", "name": "张医生", "phone": "138****5678", "role": "expert", "avatar": "https://cdn.../avatar.jpg", "hospital": "北京协和医院", "department": "肿瘤科", "title": "主任医师", "base_id": "base_001", "base_name": "国家级癌症早诊培训基地" } } }

3课程管理模块

编号接口名称方法路径鉴权角色说明
API-005获取课程列表GET/courses是全部分页获取课程列表,支持按分类、难度、状态筛选
API-006获取课程详情GET/courses/:id是全部获取课程详细信息,包括章节列表、讲师信息、学习进度
API-007创建课程POST/courses是专家管理员专家创建新课程,包含基本信息、封面、章节结构
API-008更新课程PUT/courses/:id是专家管理员编辑课程基本信息、章节内容、上架/下架状态
API-009获取直播课程列表GET/courses/live是全部获取直播课程列表,包含直播状态、开播时间、观看人数
API-010创建直播课POST/courses/live是专家专家创建直播课程,设置时间、标题、简介、推流地址

API-005 获取课程列表 - 请求参数

categorystring 可选课程分类:lung / breast / gastric / colorectal / liver / cervical / general
difficultystring 可选难度等级:beginner / intermediate / advanced
statusstring 可选状态:draft / published / archived
keywordstring 可选搜索关键词(课程名称/讲师)
pageint 可选页码,默认 1
page_sizeint 可选每页数量,默认 20,最大 100
sortstring 可选排序方式:newest / popular / progress

4学习进度模块

编号接口名称方法路径鉴权角色说明
API-011上报学习进度POST/learning/progress是学员上报视频观看进度(每30秒上报一次),记录观看时长
API-012获取我的学习进度GET/learning/progress是学员获取当前学员所有课程的学习进度统计
API-013获取单课学习详情GET/learning/progress/:course_id是学员获取指定课程的章节级学习进度明细

API-011 上报学习进度 - 请求参数

course_idstring 必填课程ID
chapter_idstring 必填章节ID
video_idstring 必填视频ID
current_timefloat 必填当前播放位置(秒)
durationfloat 必填视频总时长(秒)
watch_durationint 必填本次累计观看时长(秒)
is_completedboolean 可选是否完成本章节学习,默认 false

5在线答疑模块

编号接口名称方法路径鉴权角色说明
API-014提交文字提问POST/qa/questions是学员学员提交文字问题,支持上传图片附件,关联课程/章节
API-015获取答疑列表GET/qa/questions是专家学员分页获取答疑记录,支持按状态、课程筛选
API-016获取答疑详情GET/qa/questions/:id是专家学员获取问题详情及回复记录(对话形式)
API-017专家回复问题POST/qa/questions/:id/reply是专家专家回复学员问题,支持图文回复,标记问题状态

6作业管理模块

编号接口名称方法路径鉴权角色说明
API-018发布作业POST/assignments是专家专家发布作业,设置题目、截止时间、提交方式(文件/文本)
API-019获取作业列表GET/assignments是专家学员分页获取作业列表,学员视角显示提交状态
API-020提交作业POST/assignments/:id/submit是学员学员提交作业答案,支持文件上传、文本作答
API-021批改作业PUT/assignments/:id/grade是专家专家批改作业,给出分数和评语,标记通过/不通过

7考试管理模块

编号接口名称方法路径鉴权角色说明
API-022创建考试POST/exams是专家专家创建考试,设置题库、时长、及格分数、考试时间
API-023获取考试列表GET/exams是专家学员获取考试列表,包含考试状态、成绩、排名等
API-024开始考试POST/exams/:id/start是学员学员开始考试,获取试题列表,记录开始时间
API-025提交考试POST/exams/:id/submit是学员学员提交答卷,系统自动判分,生成成绩记录

API-025 提交考试 - 响应示例

{ "code": 0, "message": "success", "data": { "exam_id": "exam_001", "score": 87, "total_score": 100, "pass_score": 60, "is_passed": true, "rank": 23, "total_participants": 156, "used_time": 3240, "correct_count": 44, "total_questions": 50, "details": [ {"question_id": "q_001", "is_correct": true, "user_answer": "B", "correct_answer": "B"} ] } }

8认证管理模块

编号接口名称方法路径鉴权角色说明
API-026申请认证证书POST/certifications/apply是学员满足条件的学员申请认证证书,系统校验学习完成度和考试成绩
API-027获取证书详情GET/certifications/:id是全部获取认证证书详情,含证书编号、电子签章、验证链接

9管理员模块

编号接口名称方法路径鉴权角色说明
API-028用户管理(专家/学员)GET/admin/users是管理员分页获取用户列表,支持按角色、基地、状态筛选和搜索
API-029审核专家入驻POST/admin/experts/:id/audit是管理员管理员审核专家入驻申请,通过/拒绝并填写原因
API-030培训基地管理PUT/admin/bases/:id是管理员管理各级培训基地信息,增删改查基地配置和关联人员

10文件与视频模块

编号接口名称方法路径鉴权角色说明
API-031文件上传POST/files/upload是专家管理员上传图片/文档/作业附件,支持分片上传,返回文件URL和ID
API-032视频上传初始化POST/videos/init-upload是专家初始化视频上传,获取分片上传地址和上传凭证

API-032 视频上传初始化 - 响应示例

{ "code": 0, "data": { "video_id": "vid_abc123", "upload_url": "https://vod.example.com/upload/vid_abc123", "chunk_size": 5242880, "total_chunks": 24, "upload_token": "eyJhbGciOiJIUzI1NiIs...", "expires_at": "YYYY-MM-DDTHH:MM:SSZ" } }

11WebSocket 事件

连接地址:wss://api.cancer-training.gov.cn/ws
鉴权方式:URL 参数携带 token,即 wss://.../ws?token={jwt_token}
心跳间隔:30秒

事件名称方向触发场景数据结构角色
live_qa_joinClient → Server用户进入直播答疑房间{ room_id, user_id, user_name, role }专家学员
live_qa_messageBidirectional发送/接收实时答疑消息{ room_id, user_id, user_name, role, content, type, timestamp }专家学员
live_qa_statusServer → Client直播状态变更(开始/结束/人数变更){ room_id, status, viewer_count, duration }专家学员

消息类型 type 枚举

text纯文本消息
image图片消息,content 为图片 URL
system系统消息(如加入/离开提示)
question学员提问消息(带问题标识)
answer专家解答消息(带解答标识)

12标准错误码

错误码HTTP状态说明处理建议
0200成功正常处理响应数据
40001400参数错误检查请求参数格式和必填项
40002400参数校验失败根据返回的 field 信息修正参数
40101401未登录或 Token 无效引导用户重新登录
40102401Token 已过期使用 refresh_token 刷新或重新登录
40301403权限不足当前角色无此操作权限
40302403账号已被禁用联系管理员解封
40401404资源不存在检查资源 ID 是否正确
40901409资源冲突如重复提交、已存在等
42901429请求过于频繁降低请求频率,遵守限流规则
50001500服务器内部错误稍后重试,如持续请反馈
50002500第三方服务异常如短信、视频服务等不可用
60001200验证码错误重新获取并输入验证码
60002200用户名或密码错误检查输入或找回密码
70001200考试已提交不可重复提交
70002200考试时间已结束考试超时自动提交
70003200不满足认证条件检查学习进度和考试成绩
80001200文件格式不支持检查文件格式是否在允许列表中
80002200文件大小超限压缩文件后重新上传

统一响应格式

{ "code": 0, // 0=成功,非0=错误码 "message": "success", // 状态描述 "data": {}, // 响应数据(成功时返回) "request_id": "xxx" // 请求追踪ID,排错使用 }