课表接口

课表接口为学生,老师和教室提供多种类型的课表数据接口,以满足不同应用的开发需要。

数据结构

以下课表API,返回的都是班级对象的列表,不是按时间纬度返回的。因为班级会有多个上课时间,客户端需要自己根据对象schedules字段,循环插入到周课表指定位置。

每个班级对象,包含以下主要字段:

字段名 类型 描述 示例
id integer 班级ID 123
name string 课程名 语文必修1
class_name string 班名 2班
csin string 课程编号 MA101
teachers array 教师列表 teachers[0].reflection.name表示教师名
schedules array 上课时间 schedules[].day 表示星期几, lesson表示第几节
subject object 科目 subject.name 表示科目名,比如数学
classroom object 教室 classroom.name 表示教室名
  • schedules Array 上课时间列表,包含的对象有以下字段:
    • day integer 表示星期几, 1-7之间(如果为0就忽略掉,说明这个课没有上课时间)
    • lesson integer 第几节上课,1-N (如果为0就忽略掉,说明这个课没有上课时间)
    • is_current boolean 是否当前正在上课,这个字段可能不存在,如果是true就可以高亮显示
  • teachers Array 教师列表,每个教师对象有以下主要字段:
    • name string 教师名
    • usin string 教师工号
    • 字段和学生资料都一样,比如avatar_url头像链接

日课表节次信息

如果指定了date日课表查询参数,班级对象里还包括当天上课节次的字段:

字段名 类型 描述 示例
lesson integer 上课节次序号 1,2,3... 2
lesson_name string 节次名称 第2节,早读
lesson_start_time string 开始上课时间 8:55
lesson_start_timestamp integer 开始上课时间戳 1506314100
lesson_end_time string 上课结束时间 8:55
lesson_end_timestamp integer 上课结束时间戳 1506316800
lesson_is_current boolean 是否当前正在上课 false

周课表节次信息

默认没有date参数时,返回一周的所有课表。需要另外请求 3. 周课表结构 的接口。

可用 API

1、学生课表

GET /api/v1/timetable/students/:id

如果要查询某一天的上课班级,请务必加上date参数,不传将返回本学期所有上课班级。

Parameters

参数名 类型 描述
id integer 学生id
semester_id integer 学期ID,可省略,默认当前正在进行的学期
date string 只看指定日期的课表,格式为YYYY-MM-DD,可以是字符串now,表示今天

Response 200

教学班列表,无分页,详见 https://open.seiue.com/docs/api-classes.html

2、教师课表

该 API 根据教师获取授课班级列表

GET /api/v1/timetable/teachers/:id

Parameters

参数名 类型 描述
id integer 教室id
semester_id integer 学期ID,可省略,默认当前正在进行的学期

Response 200

教学班列表,无分页,详见 https://open.seiue.com/docs/api-classes.html

3、教室课表

该 API 根据教室获取班级列表

如果要查询某一天的上课班级,请务必加上date参数,不传将返回本学期所有上课班级。

GET /api/v1/timetable/classrooms/:id

Parameters

参数名 类型 描述
id integer 教室id
semester_id integer 学期ID,可省略,默认当前正在进行的学期
date string 只看指定日期的课表,格式为YYYY-MM-DD,可以是字符串now,表示今天

Response 200

教学班列表,无分页,详见 https://open.seiue.com/docs/api-classes.html

指定date参数时的响应示例:

[
    {
        "id": 152,
        "school_id": 3,
        "semester_id": 2,
        "csin": "CGJH024",
        "name": "航空航模",
        "credit": 0,
        "duration": 1,
        "description": "",
        "status": "init",
        "start_at": 4,
        "end_in": 22,
        "week_type": 0,
        "created_at": "2017-09-04 19:41:15",
        "updated_at": "2017-09-04 19:41:15",
        "capacity": 25,
        "class_name": "选修",
        "graduates_in": [
            "2029",
            "2026",
            "2025"
        ],
        "teachers": [
            {
                "created_at": "2017-09-04 19:41:15",
                "reflection": {
                    "name": "张老师",
                    "usin": "T00001",
                }
            }
        ],
        "subject": {
            "id": 108,
            "school_id": 3,
            "name": "科技类"
        },
        "schedules": [
            {
                "day": 4,
                "lesson": 2,
                "location_id": 113
            }
        ],
        "attribute": {
            "id": 94,
            "school_id": 3,
            "name": "城宫计划"
        },
        "classroom": {
            "id": 113,
            "school_id": 3,
            "name": "1.1教室"
        },
        "lesson": 6,
        "lesson_name": "第6节",
        "lesson_start_time": "12:35",
        "lesson_start_timestamp": 1506314100,
        "lesson_end_time": "13:20",
        "lesson_end_timestamp": 1506316800,
        "lesson_is_current": false
    },
]

4、周课表结构

获取每周有几天上课,每天有几节课,每节课的时间和名称分别是什么

GET /api/v1/timetable/structure

Parameters

参数名 类型 描述
semester_id integer 学期ID,可省略,默认当前正在进行的学期

Response 200

结构对象,包含days天列表和lessons节次列表。

  • days Array 一周有哪几天
    • day number 周几 1-7,对应班级对象class.schedules[].day
    • label string 显示名称,如周五
    • is_current boolean 是否当天
  • lessons Array 一天有哪几节
    • lesson number 节次 1-N,对应班级对象class.schedules[].lesson
    • time string 上课时间,即开始时间和结束时间合并后的字符串 08:30-09:15
    • start_time string 上课时间 08:30
    • end_time string 下课时间 09:15
    • label string 显示名称,如第3节,早读
    • is_current boolean 是否当前上课时间

响应示例(当前是周二第1节,高亮显示):

{
    "days": [
        {
            "day": 1,
            "label": "周一",
            "is_current": false
        },
        {
            "day": 2,
            "label": "周二",
            "is_current": true
        },
    ],
    "lessons": [
        {
            "lesson": 1,
            "time": "08:00-08:45",
            "start_time": "08:00",
            "end_time": "08:45",
            "label": "第1节",
            "is_current": true
        },
        {
            "lesson": 2,
            "time": "08:55-09:40",
            "start_time": "08:55",
            "end_time": "09:40",
            "label": "第2节",
            "is_current": false
        },
    ]
}

results matching ""

    No results matching ""