Appearance
课程
课程
获取课程信息
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
权限
- 不需要认证
- 普通用户可以获得
public
状态的课程 - 管理员用户可以获得任何状态的课程 [
TODO
]
参数
字段 | 是否必填 | 描述 |
---|---|---|
type enum{normal,live,liveOpen,open} | 否 | 课程类型, 默认normal |
categoryId int string | 否 | 分类ID,默认all |
title string | 否 | 课程标题 |
sort string | 否 | 排序字段 'createdTime','updatedTime','recommendedSeq', 'hitNum','recommendedTime','rating','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 /courses
权限
- 不需要认证用户
参数
字段 | 是否必填 | 描述 |
---|---|---|
type enum{normal,live} | 否 | 教学计划类型 |
categoryId int string | 否 | 分类ID,默认all |
title string | 否 | 教学计划标题 |
sort string | 否 | 排序字段 'createdTime','updatedTime','recommendedSeq', 'hitNum','recommendedTime','rating','studentNum' |
offset int string | 否 | 分页偏移值, 默认0 |
limit int string | 否 | 每一页数量, 默认10 |
响应
成功响应list<Course>结构体
获取课程已发布的教学计划
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}
权限
- 不需要认证