QuesBank API 文档

QuesBank提供了完整的RESTful API接口,支持题库管理、用户认证、学习进度跟踪等功能。 本文档详细介绍了所有可用的API接口及其使用方法。

基础URL: http://your-domain.com/api/
数据格式: JSON
字符编码: UTF-8

认证方式

除了登录和注册接口外,其他所有接口都需要进行身份认证。 认证方式采用Session机制,需要在请求头中包含有效的Session ID。

登录认证

POST
/api/auth/login

请求参数

  • username (string, 必填) - 用户名
  • password (string, 必填) - 密码

请求示例

{
    "username": "admin",
    "password": "123456"
}

响应示例

{
    "code": 200,
    "message": "登录成功",
    "data": {
        "user": {
            "id": 1,
            "username": "admin",
            "role": "admin",
            "email": "admin@example.com"
        },
        "session_id": "abc123def456"
    }
}

用户管理

用户注册

POST
/api/auth/register

请求参数

  • username (string, 必填) - 用户名(3-20字符)
  • password (string, 必填) - 密码(6-20字符)
  • email (string, 必填) - 邮箱地址
  • role (string, 可选) - 用户角色(student/teacher/admin)

获取用户信息

GET
/api/user/profile

题库管理

获取题库列表

GET
/api/banks

查询参数

  • page (integer, 可选) - 页码(默认1)
  • limit (integer, 可选) - 每页数量(默认10)
  • search (string, 可选) - 搜索关键词

创建题库

POST
/api/banks

请求参数

  • name (string, 必填) - 题库名称
  • description (string, 可选) - 题库描述
  • category (string, 可选) - 题库分类

题目管理

获取题目列表

GET
/api/banks/{bank_id}/questions

添加题目

POST
/api/banks/{bank_id}/questions

请求参数

  • type (string, 必填) - 题目类型(single/multiple/true_false/fill)
  • content (string, 必填) - 题目内容
  • options (array, 可选) - 选项列表(选择题)
  • answer (string/array, 必填) - 正确答案
  • explanation (string, 可选) - 解析

错误码

错误码 说明 解决方案
200 请求成功 -
400 请求参数错误 检查请求参数格式和必填项
401 未授权访问 请先登录获取认证信息
403 权限不足 检查用户角色和权限
404 资源不存在 检查请求的资源ID是否正确
500 服务器内部错误 请联系管理员或稍后重试

错误响应示例

{
    "code": 400,
    "message": "参数错误",
    "data": {
        "errors": {
            "username": ["用户名不能为空"],
            "password": ["密码长度不能少于6位"]
        }
    }
}

更多详细的API接口信息,请参考 API接口文档.md 文件。