8.0 KiB
8.0 KiB
刷课接口文档
接口列表
1. 获取刷课列表
接口地址: GET /course
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | string | 否 | 类型,可选值:xxt(学习通) |
| username | string | 否 | 账号(模糊搜索) |
| status | string | 否 | 状态,可选值:not_start(未开始)、waiting(等待中)、doing(进行中)、done(已完成)、fail(失败)、pause(暂停) |
| page | int | 否 | 页码,默认 1 |
| size | int | 否 | 每页数量,默认 10 |
返回示例:
{
"code": 200,
"message": "success",
"data": [
{
"id": 1,
"user_id": 1,
"username": "学习通账号",
"password": "",
"type": "xxt",
"course_name": "大学英语",
"course_id": "123456",
"need": "task",
"status": "waiting",
"task_count": 10,
"success_count": 5,
"exam_state": "not_start",
"violence": "no",
"desc": "备注信息",
"create_time": "2024-01-01T00:00:00Z",
"update_time": "2024-01-01T00:00:00Z"
}
],
"total": 100
}
字段说明:
type: 类型 -xxt(学习通)need: 需要刷的内容 -task(任务点)、exam(考试)、all(全部)status: 状态 -not_start(未开始)、waiting(等待中)、doing(进行中)、done(已完成)、fail(失败)、pause(暂停)exam_state: 考试状态 -not_start(未开始)、waiting(等待中)、doing(进行中)、done(已完成)、fail(失败)violence: 是否暴力刷课 -no(否)、yes(是)
2. 查询课程列表
接口地址: POST /course/query
说明: 通过学习通账号密码查询当前可选的课程列表,用于在添加刷课前选择课程。
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 是 | 学习通账号 |
| password | string | 是 | 学习通密码 |
请求示例:
{
"username": "学习通账号",
"password": "学习通密码"
}
返回示例:
{
"code": 200,
"message": "success",
"data": [
{
"cpi": 123456,
"key": "234567",
"courseId": "345678",
"chatId": "456789",
"courseTeacher": "张老师",
"courseName": "大学英语",
"courseImage": "https://example.com/image.jpg",
"courseImageBase64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAA...",
"courseDataId": 567890,
"ContentID": 678901,
"isstart": true,
"state": 0
}
]
}
字段说明:
cpi: 用户唯一标识key: 课程班级ID(classId)courseId: 课程ID(添加刷课时需要使用)chatId: 聊天IDcourseTeacher: 授课教师courseName: 课程名称(添加刷课时需要使用)courseImage: 课程封面图片URLcourseImageBase64: 课程封面图片Base64编码(包含Data URL前缀,可直接用于img标签的src属性)courseDataId: 课程数据IDContentID: 内容IDisstart: 是否已开课(true:已开课,false:未开课)state: 课程状态(0:正常,1:已结束)
注意事项:
courseImageBase64字段已经包含了 Data URL 前缀(如data:image/jpeg;base64,),可以直接设置到<img>标签的src属性- 如果图片下载失败,
courseImageBase64字段将为空字符串,此时可以使用courseImageURL 作为备用
错误示例:
{
"code": 400,
"message": "登录失败,请检查账号密码",
"data": null
}
3. 添加刷课
接口地址: POST /course
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | 是 | 学习通账号 |
| password | string | 是 | 学习通密码 |
| type | string | 是 | 类型,目前只支持 xxt(学习通) |
| course_name | string | 是 | 课程名称 |
| course_id | string | 是 | 课程ID |
| need | string | 是 | 需要刷的内容,可选值:task(任务点)、exam(考试)、all(全部) |
| violence | string | 否 | 是否暴力刷课,可选值:no(否,默认)、yes(是) |
| desc | string | 否 | 备注信息 |
请求示例:
{
"username": "学习通账号",
"password": "学习通密码",
"type": "xxt",
"course_name": "大学英语",
"course_id": "123456",
"need": "task",
"violence": "no",
"desc": "备注信息"
}
返回示例:
{
"code": 200,
"message": "添加成功",
"data": null
}
错误示例:
{
"code": 400,
"message": "该课程已存在刷课任务",
"data": null
}
4. 修改刷课密码
接口地址: PUT /course/password/{id}
路径参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int64 | 是 | 刷课任务ID |
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| password | string | 是 | 新密码 |
请求示例:
{
"password": "新密码"
}
返回示例:
{
"code": 200,
"message": "密码修改成功",
"data": null
}
错误示例:
{
"code": 400,
"message": "课程不存在或无权限操作",
"data": null
}
5. 重刷课程
接口地址: POST /course/restart/{id}
路径参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int64 | 是 | 刷课任务ID |
说明: 只有状态为 done(已完成)的课程才能重刷,重刷后会重置课程状态、任务数量、成功数量和考试状态。
返回示例:
{
"code": 200,
"message": "重刷成功",
"data": null
}
错误示例:
{
"code": 400,
"message": "只有已完成的课程才能重刷",
"data": null
}
6. 暂停/恢复刷课
接口地址: POST /course/pause/{id}
路径参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int64 | 是 | 刷课任务ID |
说明: 该接口会在暂停和恢复之间切换:
- 如果当前状态是
pause(暂停),则恢复为waiting(等待中) - 如果当前状态不是暂停,则设置为
pause(暂停)
返回示例(暂停):
{
"code": 200,
"message": "已暂停刷课",
"data": null
}
返回示例(恢复):
{
"code": 200,
"message": "已恢复刷课",
"data": null
}
7. 删除刷课
接口地址: DELETE /course/{id}
路径参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int64 | 是 | 刷课任务ID |
返回示例:
{
"code": 200,
"message": "删除成功",
"data": null
}
错误示例:
{
"code": 400,
"message": "课程不存在或无权限操作",
"data": null
}
枚举值说明
类型 (type)
| 值 | 说明 |
|---|---|
| xxt | 学习通 |
需要刷的内容 (need)
| 值 | 说明 |
|---|---|
| task | 任务点 |
| exam | 考试 |
| all | 全部 |
状态 (status)
| 值 | 说明 |
|---|---|
| not_start | 未开始 |
| waiting | 等待中 |
| doing | 进行中 |
| done | 已完成 |
| fail | 失败 |
| pause | 暂停 |
考试状态 (exam_state)
| 值 | 说明 |
|---|---|
| not_start | 未开始 |
| waiting | 等待中 |
| doing | 进行中 |
| done | 已完成 |
| fail | 失败 |
是否暴力刷课 (violence)
| 值 | 说明 |
|---|---|
| no | 否 |
| yes | 是 |
通用说明
认证
所有接口都需要用户认证,需要在请求头中携带认证信息(具体认证方式根据项目配置)。
权限
用户只能操作自己创建的刷课任务,无法访问或修改其他用户的数据。
错误码
| 错误码 | 说明 |
|---|---|
| 200 | 成功 |
| 400 | 业务错误(如参数错误、权限不足等) |
| 401 | 未认证 |
| 500 | 服务器错误 |