开发者文档

通过 API 创建在线题库,生成答题链接 — 无需安装任何依赖

1快速开始

自学平台提供 REST API,通过 HTTP 请求直接创建在线题库并生成答题链接。用户无需注册登录即可答题,题库默认保存 24 小时。

1
准备题目
题干+选项+答案
→
2
调用 API
POST /api/mcp/create-quiz
→
3
获取链接
data.full_url
→
4
开始答题
打开链接即可

curl 示例

curl -X POST https://zixue.gshyj.com/api/mcp/create-quiz \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Python 基础测验",
    "questions": [
      {
        "content": "Python 中哪个关键字用于定义函数?",
        "type": "single",
        "options": ["func", "def", "function", "define"],
        "answer": [1],
        "explanation": "Python 使用 def 关键字定义函数"
      }
    ]
  }'

返回结果

{
  "code": 0,
  "msg": "题库创建成功",
  "data": {
    "token": "a1b2c3d4...",
    "url": "/quiz-anon.html?token=a1b2c3d4...",
    "full_url": "https://zixue.gshyj.com/quiz-anon.html?token=a1b2c3d4...",
    "title": "Python 基础测验",
    "question_count": 1,
    "expires_at": "2026-07-29 18:00:00"
  }
}

拿到 full_url 后直接发给用户,打开即可答题。

3Python 示例

import requests

resp = requests.post("https://zixue.gshyj.com/api/mcp/create-quiz", json={
    "title": "高一数学 - 函数与导数",
    "questions": [
        {
            "content": "函数 f(x) = x² 在 x=2 处的导数值是?",
            "type": "single",
            "options": ["2", "4", "6", "8"],
            "answer": [1],
            "explanation": "f'(x) = 2x,f'(2) = 4",
            "difficulty": 2
        },
        {
            "content": "下列哪些是偶函数?",
            "type": "multiple",
            "options": ["f(x)=x²", "f(x)=x³", "f(x)=|x|", "f(x)=sin(x)"],
            "answer": [0, 2],
            "explanation": "x² 和 |x| 满足 f(-x)=f(x)",
            "difficulty": 3
        }
    ]
})

data = resp.json()
if data["code"] == 0:
    print(f"答题链接: {data['data']['full_url']}")
    print(f"有效期至: {data['data']['expires_at']}")
else:
    print(f"创建失败: {data['msg']}")

4在 TRAE 中使用(推荐)

本项目内置了 zixue-quiz 技能,在 TRAE 中打开本项目后,直接对 Agent 说"帮我出题"即可自动生成题库并返回答题链接。

使用方式

  1. 在 TRAE 中打开自学平台项目
  2. 对 Agent 说:"帮我出 10 道高中物理力学单选题"
  3. Agent 自动生成题目,通过 curl 调用 API 创建题库
  4. 返回真实答题链接,直接点击即可答题
技能触发关键词 "帮我出题"、"我想刷题"、"生成练习题"、"帮我出一套XX的题"等。Agent 也会在用户上传文档/PDF 后提示是否生成练习题。

从文档/PDF出题

  1. 将 PDF 或文档内容提供给 Agent
  2. 说:"阅读这份文档,帮我生成 10 道选择题"
  3. Agent 阅读内容后生成题目并调用 API
  4. 返回答题链接,打开即可答题

5API 参数说明

创建题库

POST /api/mcp/create-quiz — 无需认证

参数类型必填说明
titlestring是题库标题
questionsarray是题目数组(1-200道)

questions 数组每项的结构:

字段类型必填说明
contentstring是题干内容
typestring是"single" 单选题 / "multiple" 多选题
optionsstring[]是选项数组(至少2个)
answernumber[]是正确答案索引数组(从0开始)
explanationstring否答案解析
sourcestring否题目来源(默认 "MCP生成")
difficultynumber否难度 1-5(默认 3)

查询题库状态

GET /api/mcp/quiz/{token} — 无需认证

curl https://zixue.gshyj.com/api/mcp/quiz/a1b2c3d4...

6完整 API 列表

以下接口均以 https://zixue.gshyj.com 为基础路径。

匿名题库接口

方法路径功能认证
POST/api/mcp/create-quiz创建匿名题库,返回答题链接无需
GET/api/mcp/quiz/{token}获取题库数据无需
POST/api/mcp/save-quiz保存匿名题库到个人词库需登录

认证接口

方法路径功能
POST/api/login登录
POST/api/register注册
POST/api/logout退出

题库与分类

方法路径功能认证
GET/api/index获取分类树 + 用户信息可选
GET/api/categories获取分类树可选
GET/api/quiz/{categoryId}获取分类下的题目可选
GET/api/quiz/mistakes获取错题集需登录
POST/api/quiz/mark标记题目掌握/未掌握需登录

用户词库管理

方法路径功能
GET/api/bank/list获取私有词库列表
POST/api/bank/rename重命名词库
POST/api/bank/import从 JSON 导入题目
POST/api/bank/question添加新题目
GET/api/bank/question/{id}获取题目详情
POST/api/bank/question/{id}更新题目
POST/api/bank/question/{id}/delete删除题目
GET/api/bank/{categoryId}/questions获取词库题目列表
GET/api/bank/{categoryId}/export导出词库为 JSON

题库分享

方法路径功能
POST/api/share/create创建分享链接
GET/api/share/{token}获取分享详情
POST/api/share/{token}/claim领取分享题库

7注意事项

题库有效期 匿名题库默认保存 24 小时,过期后链接将无法访问。如需长期保存,用户需在答题页面登录后点击"保存到我的词库"。
题目数量限制 单次创建最多 200 道题目。如需更多,可分多次创建。
题目格式要求
  • 每道题至少需要 2 个选项
  • 答案索引从 0 开始(第一个选项为 0)
  • 单选题 answer 数组只能有 1 个元素
  • 多选题 answer 数组可以有多个元素
  • 如果 type 为 single 但 answer 有多个元素,系统会自动改为 multiple

故障排查

问题原因解决方案
连接服务器失败网络不通或后端未运行检查网络连接
题库已过期创建超过 24 小时重新创建题库
题目格式错误选项不足或答案索引越界检查 options 和 answer 字段
保存失败未登录或 token 无效先在自学平台登录,再尝试保存