班级上下文

?class 规则、无班级/越权错误与接口总览

路径未版本化 最后更新:2026-10-25

班级上下文

多班级架构下,待办、课表、日历、分组和通知都需要知道“这次请求属于哪个班”。已认证请求可以带查询参数:

GET /api/todos?class=3
GET /api/todos?class=demo-class
  • ?class= 的值全是数字时按班级 id 查,否则按班级 slug 查。
  • 不传时使用调用者自己加入的班级;没有加入班级时 classId 为 null。
  • 指定的班级不存在:404 NOT_FOUND;存在但调用者不是成员:403 FORBIDDEN。
  • 平台超级管理员(admin_level=3)可以指定任意班级,并在该班按 admin 角色处理。
  • 需要班级的接口在没有班级时返回 400 BAD_REQUEST,不会退化成“全平台查询”:GET/POST /api/todos、POST /api/todos/:id/toggle、GET /api/schedule、GET /api/calendar/events、GET /api/groups。
  • GET /api/me、通知和身份接口不强制要求班级,但带 ?class= 会改变返回的班级字段或通知过滤范围。

班级参数在身份解析之后、路由之前统一处理;如果班级无效,请求在进入具体接口前就会被拒绝。

接口总览

方法路径认证班级用途
GET/api/health否否健康检查
GET/api/platforms否否平台注册表
POST/api/auth/token是(Cookie)否会话换令牌
GET/api/me是可选当前用户与班级上下文
POST/api/me是否修改姓名/性别/宿舍
POST/api/me/password是否设置/修改密码
POST/api/me/password/clear是否关闭密码登入
GET/api/todos是必需待办列表
POST/api/todos是必需发布班级/个人待办
POST/api/todos/:id/toggle是必需勾选/取消完成
GET/api/schedule是必需课表视图
GET/api/calendar/events是必需手机日历事件
GET/api/groups是必需本班分组
GET/api/notices是可选通知列表
GET/api/notices/unread是可选未读数
GET/api/notices/pending是可选增量通知
POST/api/notices/:id/read是可选标记单条已读
POST/api/notices/read-all是可选全部已读
GET/api/identities是否已绑定平台
POST/api/identities/linkcode是否生成绑定码
GET/api/identities/linkcode/:code是否查询绑定码状态
POST/api/identities/bind否否用绑定码绑定平台
POST/api/auth/desk否否创建扫码登入会话
GET/api/auth/desk/:scene否否轮询扫码状态
GET/api/auth/desk/:scene/qrcode否否小程序码图片
POST/api/auth/mini否否小程序扫码回调
GET/api/auth/mini/status否否小程序配置诊断
GET/api/app/version否否App 版本(不在 API router 内)
若本文与源码不一致,以源码和实际响应为准;发现不一致时请更新文档,而不是修改 API 行为。 学生使用指南 · 返回 API 总览