课程
课程
获取课程信息
GET /course_sets/{id}
权限
- 不需要认证
- 普通用户可以获得
published
状态的课程 [TODO
] - 管理员用户可以获得任何状态的课程 [
TODO
]
响应
成功响应CourseSet
结构体
字段 | 描述 |
---|---|
id int string |
课程ID |
title string |
标题 |
subtitle string |
副标题 |
type enum{normal,live,liveOpen,open} |
课程类型 normal:普通课程 live:直播课程 liveOpen:直播公开课 open:公开课 |
tags list<Tag> |
标签 |
category Category |
分类 |
serializeMode enum{none,serialized,finished} |
连载课程 none:非连载 serialized:连载中 finished:连载结束 |
status enum{draft,published,closed} |
状态, 普通用户只能看到published的课程 |
summary string |
课程摘要 |
goals list<string> |
课程目标 |
audiences list<string> |
课程适合人群 |
cover Picture |
课程封面图片地址 |
ratingNum int string |
评价人数 |
rating float string |
评价平均分 |
noteNum int string |
笔记数量 |
studentNum int string |
学员数量 |
recommended bool |
是否推荐课程 |
recommendedSeq int string |
推荐序号 |
recommendedTime datetime |
推荐时间 |
orgId int string |
组织机构ID |
orgCode string |
组织机构编码 |
discountId int string |
打折活动ID |
discount int string |
折扣量 |
maxRate int string |
最大可被虚拟币抵扣百分比 |
hitNum int string |
课程查看次数 |
materialNum int string |
资料数量 |
parentId int string |
父课程ID |
locked bool |
课程锁定状态 |
maxCoursePrice float string |
已发布教学计划的最高价格 |
minCoursePrice float string |
已发布教学计划的最低价格 |
maxOriginCoursePrice float string |
已发布教学计划的最高原价格 |
minOriginCoursePrice float string |
已发布教学计划的最低原价格 |
creator SimpleUser |
课程创建者 |
createdTime datetime |
创建时间 |
updatedTime datetime |
最后更新时间 |
teachers list<SimpleUser> |
教师 |
错误
失败响应Error结构体,错误码有
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 课程不存在 | 404 |
获取全部课程列表
GET /course_sets
权限
- Access-Token认证方式可以获得任何状态的课程
参数
字段 | 是否必填 | 描述 |
---|---|---|
filter enum{normal,lease} |
否 | 课程类型, 默认normal,租赁课程lease |
categoryId int string |
否 | 分类ID,默认all |
orgIds int string |
否 | 部门id(eg:1,2,3) |
status int string |
否 | 课程状态,未发布draft,已发布published,已关闭closed |
title string |
否 | 课程标题 |
creatorName string |
否 | 创建者用户名(eg:admin) |
offset int string |
否 | 分页偏移值, 默认0 |
limit int string |
否 | 每一页数量, 默认10 |
响应
成功响应pagelist<CourseSet>结构体
获取课程列表
GET /course_sets
权限
- 需要认证
- 普通用户可以获得
public
状态的课程 - Access-Token认证方式可以获得任何状态的课程
参数
字段 | 是否必填 | 描述 |
---|---|---|
type enum{normal,live,liveOpen,open} |
否 | 课程类型, 默认normal |
categoryId int string |
否 | 分类ID,默认all |
title string |
否 | 课程标题 |
sort string |
否 | 排序字段 'createdTime','updatedTime','recommendedSeq', 'hitNum','recommendedTime','ratincourg','studentNum' |
offset int string |
否 | 分页偏移值, 默认0 |
limit int string |
否 | 每一页数量, 默认10 |
响应
成功响应pagelist<CourseSet>结构体
课程成员
获取课程所有学员(去重)
GET /course_sets/{courseSetId}/latest_members
权限
- 不需要认证
参数
字段 | 是否必填 | 描述 |
---|---|---|
offset int string |
否 | 分页偏移值,默认0 |
limit int string |
否 | 每一页数量,默认10 |
响应
成功响应list<CourseMember>结构体
字段 | 描述 |
---|---|
id int string |
成员ID |
courseSetId int string |
课程ID |
courseId int string |
教学计划ID |
user SimpleUser |
用户信息 |
deadline datetime |
到期时间 |
levelId int string |
vipID |
learnedNum int string |
已学任务数量 |
noteNum int string |
笔记数量 |
noteLastUpdateTime datetime |
笔记数量 |
isLearned bool |
是否学完 |
finishedTime datetime |
何时完成计划 |
role enum{teacher,student} |
角色 |
locked bool |
是否被锁 |
createdTime datetime |
加入时间 |
lastLearnTime datetime |
最近学习时间 |
lastViewTime datetime |
最近观看视频时间 |
access Access |
是否可以继续学习 success:可以 course.unpublished:课程未发布 course.expired:学习有效期已过 course.not_arrive:未到授课时间 member.expired:学员有效期已到 vip.member_expired:vip过期 vip.level_not_exist:vip等级不存在 vip.level_low:等级过低 |
教学计划
获取单个教学计划
GET /courses/{id}
权限
- 不需要认证用户
响应
成功响应Course结构体
字段 | 描述 |
---|---|
id int string |
教学计划ID |
courseSet SimpleCourseSet |
课程 |
title string |
教学计划标题 |
learnMode string |
学习模式 |
learningExpiryDate ExpiryDate |
学习有效期 |
summary string |
教学计划简介 |
goals list<string> |
教学计划目标 |
audiences list<string> |
教学计划适合人群 |
isDefault int string |
是否是默认教学计划 |
maxStudentNum int string |
最大允许加入学员 |
status string |
教学计划状态 |
creator SimpleUser |
教学计划创建者 |
isFree int string |
是否免费 |
price float string |
价格 |
originPrice float string |
价格 |
enableFinish bool |
是否允许学员强制完成任务, 1:表示不限制 0:表示限制 |
vipLevelId int string |
vipId |
tryLookable int string |
是否允许试看 |
tryLookLength int string |
允许试看时长 |
watchLimit int string |
观看次数 |
services list<Service> |
承诺服务 |
taskNum int string |
总任务数 |
publishedTaskNum int string |
发布的任务数 |
studentNum int string |
学员数 |
teachers list<SimpleUser> |
教师 |
parentId int string |
父计划ID |
createdTime datetime |
创建时间 |
updatedTime datetime |
最后更新时间 |
access Access |
是否可加入课程 success:可以加入 user.not_login:用户未登录 user.locked:用户被锁 course.unpublished:课程未发布 course.closed:课程已关闭 course.not_buyable:课程被设置不可加入 course.buy_expired:购买有效期已过 course.expired:学习有效期已过 course.only_vip_join_way:只能通过VIP加入 |
字段 | 描述 |
---|---|
expired bool |
是否已过期 |
expiryMode enum{days,date} |
教学计划到期模式 days:指定天数后过期 date:指定的时间过期 |
expiryDays int string |
到期天数 |
expiryStartDate datetime |
到期开始时间 |
expiryEndDate datetime |
到期结束时间 |
字段 | 描述 |
---|---|
code string |
服务编码 |
shortName string |
短名称 |
fullName string |
长名称 |
summary string |
描述信息 |
字段 | 描述 |
---|---|
code string |
编码 |
msg string |
信息 |
错误
失败响应Error结构体,错误码有
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 教学计划不存在 | 404 |
获取课程已发布的教学计划
GET /course_sets/{course_setId}/courses
权限
- 不需要认证用户
响应
成功响应list<Course>结构体
错误
失败响应Error结构体,错误码有:
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 课程不存在 | 404 |
获取我加入的教学计划
GET /me/course_sets/{courseSetId}/course_members
权限
- 认证用户
响应
成功响应list<CourseMember>结构体
教学计划成员
加入教学计划,成为学员
POST /courses/{id}/members
权限
- 需要认证用户
响应
加入成功返回CourseMember
加入失败返回空对象
错误
失败响应Error结构体,错误码有:
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 教学计划不存在 | 404 |
获取教学计划学员
GET /courses/{courseId}/members
权限
- 不认证用户
参数
字段 | 是否必填 | 描述 |
---|---|---|
role enum{student,teacher} |
否 | 角色,默认查询所有角色 |
offset int string |
否 | 分页偏移值, 默认0 |
limit int string |
否 | 每一页数量, 默认10 |
响应
成功响应list<CourseMember>结构体
获取单个教学计划成员
GET /me/course_members/{courseId}
权限
- 认证用户
响应
成功响应CourseMember结构体
教学计划任务
获取单个任务
GET /courses/{courseId}/tasks/{taskId}
权限
- 需要认证
响应
成功响应CourseTask结构体
字段 | 描述 |
---|---|
id int string |
任务ID |
title string |
任务标题 |
isFree int string |
是否免费 |
isOptional int string |
是否选修 |
startTime datetime |
直播开始时间 |
endTime datetime |
直播结束时间 |
mode string |
任务模式 |
status string |
任务状态 |
type int string |
任务类型 |
length int string |
视频时长(秒) |
result SimpleTaskResult |
任务结果 传入token,才有这个属性 |
lock bool |
任务是否被锁住 传入token,才有这个属性 |
activity Activity |
活动 |
字段 | 描述 |
---|---|
id int string |
ID |
remark string |
描述信息 |
replayStatus enum{ungenerated,generating,generated} |
直播回放状态 |
finishType string |
任务完成类型 |
finishDetail string |
任务完成条件 |
获取教学计划的目录列表
GET /courses/{id}/items
权限
- 不需要认证
参数
字段 | 是否必填 | 描述 |
---|---|---|
onlyPublished int string |
否 | onlyPublished=1,过滤掉未发布的任务 |
响应
成功响应CourseItem结构体
字段 | 描述 |
---|---|
type enum{task,chapter,unit} |
类型 |
number int string |
显示的数字 |
seq int string |
任务的顺序 |
title string |
标题 |
task CourseTask |
任务 |
错误
失败响应Error结构体,错误码有
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 教学计划不存在 | 404 |
获取计划下的第一个试看任务
GET /courses/{id}/trial_tasks/first
权限
- 不需要用户认证
响应
成功响应CourseTask
错误
失败响应Error结构体,错误码有
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 计划不存在 | 404 |
错误
失败响应Error结构体,错误码有
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 教学计划不存在 | 404 |
评价
获取计划的所有评价
GET /courses/{id}/reviews
权限
- 不需要用户认证
- 公开的评价 ->
private = 0
参数
字段 | 描述 |
---|---|
offset int string |
分页偏移值, 默认0 |
limit int string |
每一页数量, 默认10 |
响应
成功响应list<CourseReview>结构体
字段 | 描述 |
---|---|
id int string |
评价ID |
userId int string |
评价人ID |
courseId int string |
教学计划ID |
title string |
评价标题 |
content string |
评价内容 |
rating int string |
评价分数 |
private bool |
是否是私有评价 |
createdTime datetime |
创建时间 |
updatedTime datetime |
最后更新时间 |
parentId int string |
父ID |
meta string |
保存当时用户的学习进度 |
courseSetId int string |
课程ID |
错误
失败响应Error结构体,错误码有
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 教学计划不存在 | 404 |
获取课程的所有评价
GET /course_sets/{id}/reviews
权限
- 不需要用户认证
- 公开的评价 ->
private = 0
参数
字段 | 描述 |
---|---|
offset int string |
分页偏移值, 默认0 |
limit int string |
每一页数量, 默认10 |
响应
成功响应list<CourseReview>结构体
错误
失败响应Error结构体,错误码有
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 课程不存在 | 404 |
学习进度
获取我的教学计划下的学习进度
GET /me/course_learning_progress/{courseId}
权限
- 需要用户认证
响应
字段 | 描述 |
---|---|
taskCount int string |
任务总数 |
taskResultCount int string |
完成的任务数 |
progress int string |
当前学习进度百分比 |
nextTask CourseTask |
下一个学习的任务 |
taskPerDay int string |
任务式课程每日建议学习任务数 |
planStudyTaskCount int string |
计划应学数量 |
planProgressProgress int string |
计划进度 |
member SimpleCourseMember |
成员信息 |
字段 | 描述 |
---|---|
id int string |
ID |
courseId int string |
计划ID |
deadline datetime |
学习有效期 |
错误
失败响应Error结构体,错误码有
Code | 错误说明 | HTTP状态码 |
---|---|---|
10 | 计划不存在 | 404 |
课程收藏
我收藏的课程
GET /me/favorite_course_sets
权限
- 需要认证用户
参数
字段 | 描述 |
---|---|
offset int string |
分页偏移值, 默认0 |
limit int string |
每一页数量, 默认10 |
响应
成功响应pageList<SimpleCourseSet>
字段 | 描述 |
---|---|
id int string |
ID |
title string |
标题 |
subtitle string |
副标题 |
type enum{normal,live,open,liveOpen} |
类型 |
cover [CourseCover#CourseCover] |
封面 |
studentNum int string |
学员数量 |
maxCoursePrice int string |
最大价格 |
minCoursePrice int string |
最小价格 |
maxOriginCoursePrice int string |
最高原价格 |
minOriginCoursePrice int string |
最小原价格 |
discount int string |
优惠 |
是否收藏课程
GET /me/favorite_course_sets/{courseSetId}
权限
- 需要认证用户
响应:
成功响应
字段 | 描述 |
---|---|
isFavorite bool |
是否收藏 |
收藏课程
POST /me/favorite_course_sets
权限
- 需要认证用户
参数
字段 | 是否必填 | 描述 |
---|---|---|
courseSetId int string |
是 | 课程ID |
响应
成功响应
字段 | 描述 |
---|---|
success bool |
收藏是否成功 |
取消收藏课程
DELETE /me/favorite_course_sets/{courseSetId}
权限
- 需要认证用户
参数
字段 | 是否必填 | 描述 |
---|---|---|
courseSetId int string |
是 | 课程ID |
响应
成功响应
字段 | 描述 |
---|---|
success bool |
取消是否成功 |
退出
退出计划
DELETE /me/course_members/{courseId}
权限
- 需要认证用户
参数
字段 | 是否必填 | 描述 |
---|---|---|
reason string |
否 | 退出原因 |
响应
成功响应
字段 | 描述 |
---|---|
success bool |
取消是否成功 |
事件
学习任务
PATCH /courses/{courseId}/tasks/{taskId}/events/{envet:doing,finish}
权限
- 需要认证用户
参数
字段 | 是否必填 | 描述 |
---|---|---|
lastTime timestamp |
是 | 最近一次记录任务的时间戳 |
成功响应
字段 | 描述 |
---|---|
result TaskResult |
任务结果 |
event string |
任务名称 |
lastTime timestamp |
最近一次记录任务的时间戳 |
nextTask CourseTask |
下一个任务 只有当前任务完成了才有值,否则是null |
completionRate int string |
课程完成百分比 只有当前任务完成了才有值,否则是null |
字段 | 描述 |
---|---|
id int string |
任务结果ID |
activityId int string |
活动ID |
courseId int string |
计划ID |
courseTaskId int string |
任务ID |
createdTime datetime |
任务开始时间 |
finishedTime datetime |
任务完成时间 |
status enum{start,finish} |
任务的状态 |
updatedTime enum{start,finish} |
最后更新时间 |
userId enum{start,finish} |
用户ID |
查看计划
PATCH /courses/{courseId}/events/{event:course_view}
权限
- 不需要认证