Skip to content

提交作答

POST /api/app/course/{courseId}/task/{taskId}/marker/quiz/{quizId}/finish

提交弹题作答。当前轮同题若已存在非 none 结果,则不覆盖落库,直接返回已存结果。服务端根据 startedAt 与请求到达时间差判定超时。

位置参数

参数类型必填说明
courseIdnumber课程 ID
taskIdnumber任务 ID
quizIdnumber题目主键(question_marker.id

请求

字段类型必填说明
clientUuidstringstart 返回的当前答题窗口租约
userAnswerstring / array / boolean / null非超时场景按题型要求用户答案

userAnswer 形态

typeuserAnswer 示例
single_choice"B"
determinetrue / false
choice / uncertain_choice["A", "C"]
fill["填空1", "填空2"]

说明:

  • 判断题对前端契约使用 Boolean;服务端内部会转换为 "1" / "0" 后再评分与落库
  • 单选题 / 判断题点击选项即提交;多选 / 不定项需点击提交按钮
  • 多选 / 不定项未点击提交按钮即被强制收题时,按未作答处理
  • 服务端判定超时时会忽略 userAnswer,按 noAnswer 落库

请求示例

json
{
  "clientUuid": "4bcaad66-f327-4f57-94c4-12f9a8bdbef7",
  "userAnswer": true
}

响应

字段类型说明
idnumber题目 ID
resultstring题结果:right / wrong / partRight / noAnswer
scorenumber题得分
correctAnswerboolean / string / array / null正确答案;判断题为 Boolean,单选为字符串,多选为字符串数组,填空为字符串数组
userAnswerboolean / string / array / null用户答案;超时或无作答时为 null
analysisstring解析纯文本,已去 HTML
totalScorenumber累计总分

响应示例

json
{
  "id": 501,
  "result": "right",
  "score": 820,
  "correctAnswer": "B",
  "userAnswer": "B",
  "analysis": "解析",
  "totalScore": 820
}

异常

错误码HTTP说明
COURSE_VIDEO_MARKER_TASK_MISMATCH400任务与弹题不匹配
COURSE_VIDEO_MARKER_NOT_FOUND404弹题或题目不存在
COURSE_VIDEO_MARKER_QUIZ_NOT_STARTED400请先开始弹题答题
COURSE_VIDEO_MARKER_QUIZ_ORDER_VIOLATION400请按题目顺序作答
COURSE_VIDEO_MARKER_PARAM_INVALID400弹题参数不合法
COURSE_VIDEO_MARKER_LEASE_MISMATCH400答题已在新窗口进行,请刷新后继续