Skip to content

14_Class_API

本文档描述班级(Classes)相关接口,接口实现见 app/api/classes.py

概览

  • 资源:classes(成员、教师子资源)
  • 权限(简要):
    • 学校管理员:管理本校班级;可创建班级、指派/移除教师、添加/移除成员
    • 老师:仅能在自己任教的班级查看成员/添加成员(受限)

1. 班级管理

  • POST /schools/{school_id}/classes(201)
    • 权限:学校管理员(本校)/平台管理员
    • 入参:ClassCreate { name, edu_year? }
    • 响应:ClassOut { id, school_id, name, edu_year, created_at }

2. 班级成员

  • GET /classes/{class_id}/members

    • 权限:任教老师/学校管理员/平台管理员
    • 响应:UserOut[]
  • POST /classes/{class_id}/members

    • 权限:任教老师(本班)/学校管理员(本校)/平台管理员
    • 入参:ClassMemberAdd { user_ids?[], username_list?[] }
    • 响应:{ message, added_user_ids[] }
  • DELETE /classes/{class_id}/members/{user_id}(204)

    • 权限:任教老师(本班)/学校管理员(本校)/平台管理员

3. 班级教师

  • GET /classes/{class_id}/teachers

    • 权限:任教老师/学校管理员/平台管理员
    • 响应:UserOut[]
  • POST /classes/{class_id}/teachers

    • 权限:学校管理员/平台管理员
    • 入参:ClassTeacherAssign { teacher_id, role }
    • 响应:{ message, teacher_id }
  • DELETE /classes/{class_id}/teachers/{teacher_id}(204)

    • 权限:学校管理员/平台管理员

4. 数据模型(节选)

  • ClassCreate: name, edu_year?
  • ClassOut: id, school_id, name, edu_year, created_at
  • ClassMemberAdd: user_ids?[], username_list?[]
  • ClassTeacherAssign: teacher_id, role

5. 变更说明

  • 09_User_Management_API.md 中的班级相关接口已迁移至本文档;旧文档中保留了迁移提示。