课表接口
课表接口为学生,老师和教室提供多种类型的课表数据接口,以满足不同应用的开发需要。
数据结构
以下课表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
},
]
}