课堂、成员与权限
以下方法位于课堂客户端 client。方法名使用 Node.js 写法;其他语言的对应命名见各语言指南。
方法与路由
| Method | HTTP |
|---|---|
users.register | POST /v1/users |
auth.issueToken | LOCAL HS256 (eduskit-edu) |
classrooms.create | POST /v1/classrooms |
classrooms.start | POST /v1/classrooms/start |
classrooms.end | POST /v1/classrooms/end |
classrooms.members.add | POST /v1/classrooms/members |
classrooms.members.list | GET /v1/classrooms/members |
classrooms.members.replaceStudents | PUT /v1/classrooms/members/students |
classrooms.permissions.get | GET /v1/classrooms/members/permissions |
classrooms.permissions.set | POST /v1/classrooms/members/permissions |
classrooms.permissions.clear | DELETE /v1/classrooms/members/permissions |
classrooms.coursewares.list | GET /v1/classrooms/coursewares |
classrooms.coursewares.bind | POST /v1/classrooms/coursewares |
classrooms.coursewares.unbind | DELETE /v1/classrooms/coursewares |
app.getUiConfig | GET /v1/app/ui-config |
app.setUiConfig | PUT /v1/app/ui-config |
SDK 自动把标识写入请求:GET/DELETE 的课堂、用户和权限标识放 query,POST/PUT 的标识放 JSON body。DELETE 仍可能有 JSON body:清除权限需要 operatorEduUserId,解绑课件需要 coursewareIds。代理和网关需保留这些请求体。
创建课堂
| 字段 | 约束 |
|---|---|
name | 必填课堂名称 |
startsAt | ISO 8601;至少晚于当前时间 10 分钟 |
durationMinutes | 整数,5–480 分钟 |
teacherEduUserId | 同应用已注册用户;创建时自动成为老师 |
studentEduUserIds | 可选学生列表,不含主讲老师 |
joinPolicy | invite_only(默认)或 open_app |
maxOnStage | 同时上台人数,1–16 |
videoOnly | true 时不初始化课堂白板 |
recordMode | none、classroom、mix |
uiConfig | 创建时与应用 UI 配置合并,写入课堂快照 |
后台还会检查应用资源和套餐约束。classroomId、eduUserId 使用接口返回值;示例中的短名称不是有效平台 ID。
成员和权限示例
以下代码接续 Node.js 客户端初始化,classroomId、studentId、teacherId 均取真实注册或创建结果:
await sdk.client.classrooms.members.add(classroomId, {
eduUserId: studentId,
role: 'student',
});
const members = await sdk.client.classrooms.members.list(classroomId);
await sdk.client.classrooms.permissions.set(classroomId, studentId, {
permission: 'whiteboard',
effect: 'grant',
operatorEduUserId: teacherId,
});
const permissions = await sdk.client.classrooms.permissions.get(classroomId, studentId);
await sdk.client.classrooms.permissions.clear(classroomId, studentId, 'whiteboard', {
operatorEduUserId: teacherId,
});
set(... effect: 'revoke') 写入拒绝覆盖,clear 删除覆盖并恢复角色或应用规则。replaceStudents(id, { eduUserIds }) 全量替换学生名单,传空数组表示清空学生,并非追加。
课件和 UI 配置
coursewares.bind(id, { coursewareIds }) 绑定本应用已有课件;重复绑定幂等。unbind 只解除课堂绑定。课件转码任务 ID、白板 fileId 和课堂 coursewareId 是不同标识,不能互换。
app.setUiConfig({ uiConfig }) 修改应用 UI 默认配置。已创建课堂保留创建时的快照,不会随应用配置变化。
classrooms.start(id) 与 classrooms.end(id) 由业务系统在明确的开课、结课动作中调用。仅退出客户端应调用 leaveClassroom(),不会结束其他人的课堂。
应用业务与租户管理接口
源码构建的 client 提供 50 个应用凭证 HTTP 路由,包含用户、课堂、课件库、直播素材与诊断。参数与返回结构见应用业务接口,完整流程见业务操作示例。独立的租户管理客户端 使用租户会话管理账号、应用、仪表盘和计费。新增方法需要对应版本的 server-api 与 SDK 源码构建;公开包 0.1.5 不包含这些新增方法。