Skip to content

课程

课程

获取课程信息

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 stringvipID
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 stringvipId
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加入

ExpiryDate结构体

字段描述
expired bool是否已过期
expiryMode enum{days,date}教学计划到期模式 days:指定天数后过期 date:指定的时间过期
expiryDays int string到期天数
expiryStartDate datetime到期开始时间
expiryEndDate datetime到期结束时间

Service结构体

字段描述
code string服务编码
shortName string短名称
fullName string长名称
summary string描述信息

Access结构体

字段描述
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活动

Activity 结构体

字段描述
id int stringID
remark string描述信息
replayStatus enum{ungenerated,generating,generated}直播回放状态
finishType string任务完成类型
finishDetail string任务完成条件

获取教学计划的目录列表

GET /courses/{id}/items

权限

  • 不需要认证

参数

字段是否必填描述
onlyPublished int stringonlyPublished=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成员信息

SimpleCourseMember 结构体

字段描述
id int stringID
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 stringID
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

TaskResult 结构体

字段描述
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}

权限

  • 不需要认证