Skip to content
Ivan Chien edited this page Jul 17, 2023 · 5 revisions

POST /api/v1/ping

返回 pong。

POST /api/v1/user/register

注册用户。

字段 类型 描述 约束
nickname string 昵称 唯一
user_name string 用户名 唯一
password string 密码
password_confirm string 确认密码

成功时返回 data 结构为:

字段 类型 描述
id int 注册的新用户 ID
user_name string
nickname string
status string 用户状态(未使用)
avatar string 头像(未使用)
role int 用户角色(0 为普通用户,1 为管理员用户)
created_at int 数据库记录创建时间,UNIX timestamp

POST /api/v1/user/login

用户登录。

字段 类型 描述 约束
user_name string 用户名
password string 密码

成功时返回 data 结构为:

user/register

GET /api/v1/user/fetch

获取某用户信息。

字段 类型 描述 约束
id int 用户 ID

成功时返回 data 结构为:

user/register

GET /api/v1/user/me

获取登录用户信息。

成功时返回 data 结构为:

user/register

DELETE /api/v1/user/logout

当前用户登出。

POST /api/v1/problem/submit

提交代码。

字段 类型 描述 约束
problem_id int 提交问题 ID
source_code string 提交代码
lang string 提交语言 如下

当前可选语言:

  • c
  • cpp
  • python
  • rust

区分拼写和大小写。

成功时返回 data 结构为:

字段 类型 描述
id int 提交 ID
problem_id int 问题 ID
source_path string 源代码存储路径(当前源代码本身)
lang string 提交语言(同 problem/submit 部分)
status int 判题机返回状态,细节见下文
judger_info string 判题机返回信息
created_at int

判题机返回状态,即提交状态(详见 CoffeeOJ-judge/src/models/submission.rs at master · Yestercafe/CoffeeOJ-judge · GitHub):

  • Accepted = 0:正确
  • WrongAnswer = 1:答案错误
  • CompilationError = 2:编译错误
  • RuntimeError = 3:运行时错误
  • TimeLimitExceeded = 4:时间超出限制
  • MemoLimitExceeded = 5:内存超出限制
  • UnknownError = 6:前端未知错误,检查 singo 端和 judger 日志

POST /api/v1/problem/add

添加问题。

字段 类型 描述 约束
title string 问题标题
memo_limit int 内存限制(MB) $\ge 16$
time_limit int 时间限制(ms) $\ge 500$
text string 正文内容(Markdown 格式存储)

成功时返回 data 结构为:

字段 类型 描述
id int 问题 ID
creator_id int 创建者用户 ID
title string 标题
memo_limit int 内存限制
time_limit int 时间限制
path string 正文文本存储路径
created_at int

POST /api/v1/problem/delete

删除问题。

字段 类型 描述 约束
id int 问题 ID

GET /api/v1/problem/fetch

获取问题信息。

字段 类型 描述 约束
id int 问题 ID

成功时返回 data 结构为:

problem/fetch

GET /api/v1/problem/list

获取所以问题列表。

成功时返回的 data 为 list of int,是题目 ID 构成的列表。

POST /api/v1/problem/update

更新某问题的信息。

字段 类型 描述 约束
id int 问题 ID
title string 新标题
memo_limit int 新内存限制(MB) $\ge 16$
time_limit int 新时间限制(ms) $\ge 500$
text string 新正文内容(Markdown 格式存储)

成功时返回 data 结构为:

problem/add

GET /api/v1/submission/fetch

获取某个提交的信息。

字段 类型 描述 约束
id int 提交 ID

成功时返回 data 结构为:

problem/add

POST /api/v1/submission/rejudge

重判某个提交。

字段 类型 描述 约束
id int 提交 ID

成功时返回 data 结构为:

problem/submit