所有提交接口都需要有效的
Authorization: Bearer <token> 头。GET /tasks/:taskId/submissions
返回某个任务中每位班级成员的提交状态。包括尚未提交的成员。需要 OWNER 或 ADMIN 角色。 Path parameters任务 UUID。
成员的用户 UUID。
显示名,或
null。用于 Gravatar 查找的用户邮箱 SHA-256 十六进制哈希。
学校名称,或
null。学号,或
null。成员角色:
OWNER、ADMIN 或 MEMBER。成员是否已提交。
提交附件列表。若未提交则为空数组。
提交摘要,若未提交则为
null。| 状态 | 何时发生 |
|---|---|
403 Forbidden | 权限不足(必须是 OWNER 或 ADMIN)。 |
GET /tasks/:taskId/submissions/me
获取当前用户对某个任务的提交。 Path parameters任务 UUID。
Submission UUID.
Task UUID.
Submitter UUID.
Markdown 正文内容,或
null。已上传附件列表。
首次提交的 ISO 8601 UTC 时间戳。
最后更新的 ISO 8601 UTC 时间戳。
批改人给出的分数,或
null。批改人反馈,或
null。该提交是否被标记为示例提交。
| 状态 | 何时发生 |
|---|---|
404 Not Found | 你还没有提交这个任务。 |
PUT /tasks/:taskId/submissions/me
创建或更新你对某个任务的提交(upsert)。如果没有提交记录,就会创建一条,并记录firstSubmittedAt。如果已有提交记录,则会更新它 - 更新时 firstSubmittedAt 永远不会改变。
Path parameters
任务 UUID。
你的提交的 Markdown 正文。传入
null 可清空。附件请通过 POST /tasks/:taskId/submissions/me/attachments 单独上传。GET /tasks/:taskId/submissions/me 相同)。
Error codes
| 状态 | 何时发生 |
|---|---|
403 Forbidden | 已禁用迟交,且截止时间已过。 |
GET /tasks/:taskId/submissions/:submissionId
获取某个提交的完整详情,包括其 Markdown 正文和附件。供 OWNER 和 ADMIN 在批改页面使用。需要 OWNER 或 ADMIN 角色。 Path parameters任务 UUID。
提交 UUID。
GET /tasks/:taskId/submissions/me 相同)。
Error codes
| 状态 | 何时发生 |
|---|---|
403 Forbidden | 权限不足(必须是 OWNER 或 ADMIN)。 |
404 Not Found | 提交不存在。 |
PATCH /tasks/:taskId/submissions/:submissionId/grade
为提交分配分数和/或反馈。需要 OWNER 或 ADMIN 角色。reviewerId 会自动设为当前用户,reviewedAt 会设为当前时间。
Path parameters
任务 UUID。
提交 UUID。
数值分数。传入
null 可移除分数。书面反馈。传入
null 可清空。| 状态 | 何时发生 |
|---|---|
403 Forbidden | 权限不足(必须是 OWNER 或 ADMIN)。 |
GET /tasks/:taskId/submissions/export
将某个任务的所有提交数据导出为 CSV 文件。包含每位班级成员 - 未提交的成员会显示为空的提交字段。需要 OWNER 或 ADMIN 角色。 **CSV 列:**昵称、学校、学号、班级、任务名称、首次提交时间、最后更新时间、分数。 Path parameters任务 UUID。
text/csv 内容,响应头为:
| 状态 | 何时发生 |
|---|---|
403 Forbidden | 权限不足(必须是 OWNER 或 ADMIN)。 |