# 本科教学类APIs
本组API用于获取本科教学类相关信息,不包含研究生数据。
- 使用本组API前请先阅读概述,令牌的获取参考此处,构造请求请参考此处,返回数据请参考此处,除非特殊注明,所有数据资源API有着通用的返回结构。
- 本科教学类基于GraphQL协议老版本接口说明请参考此处。
# 申请
申请本科教学类API接口,请通过数据资源申请 (opens new window)完成申请。
# 学生基本信息
- GET https://graphql.sjtu.edu.cn/v1/stu/profile 客户端 exchange_data
# 请求参数
参数名 | 类型 | 必填 | 参数说明 |
---|---|---|---|
accountNo | string | 否 | jAccount账号 |
xh | string | 否 | 学号 |
glyx | string | 否 | 管理院系代码 |
lxbj | string | 否 | 离校标记(N:未离校 Y:离校) |
timestamp | string | 否 | 更新时间(yyyy-MM-dd/yyyy-MM-dd HH:mm:ss),取大于等于该时间戳的数据 |
first | int | 否 | 分页起始位置 分页参数说明 |
offset | int | 否 | 分页偏移量 |
# 响应参数
所有数据资源API响应参数都有相同的通用结构
- 学生信息 Structure
{
"accountNo":{string} //jAccount
"xh":{string} //学号
"xm":{string} //姓名
"xbdm":{string} //性别代码
"xbmc":{string} //性别名称
"csrq":{string} //出生日期
"mzdm":{string} //民族代码
"mzmc":{string} //民族名称
"zzmmdm":{string} //政治面貌代码
"zzmmmc":{string} //政治面貌名称
"jg":{string} //籍贯代码
"jgmc":{string} //籍贯名称
"hyzkdm":{string} //婚姻状况代码
"hyzkmc":{string} //婚姻状况名称
"gbdm":{string} //国别代码
"gbmc":{string} //国别名称
"zjlb":{string} //证件类别代码
"zjlbmc":{string} //证件类别名称
"sfzhm":{string} //证件号码
"xldm":{string} //学历代码
"xlmc":{string} //学历名称
"sydqm":{string} //生源地区代码
"sydqmc":{string} //生源地区名称
"email":{string} //邮箱
"sj":{string} //手机号码
"pyfsdm":{string} //培养方式代码
"pyfsmc":{string} //培养方式名称
"glyx":{string} //管理院系代码
"glyxmc":{string} //管理院系名称
"bh":{string} //班号
"zydm":{string} //专业代码
"zymc":{string} //专业名称
"lxbj":{string} //离校标记
"lxbjmc":{string} //离校标记名称
"xqdm":{string} //校区代码
"xqmc":{string} //校区名称
"xslbdm":{string} //类别代码
"xslbmc":{string} //类别名称
"xslbmx":{string} //类别明细代码
"xslbmxmc":{string} //类别明细名称
"xjztdm":{string} //学籍状态代码
"xjztmc":{string} //学籍状态名称
"xz":{string} //学制
"xxfsdm":{string} //学习方式代码
"xxfsmc":{string} //学习方式名称
"sflxs":{string} //是否留学生代码
"sflxsmc":{string} //是否留学生名称
"yjbysj":{string} //预计毕业时间
"sjbysj":{string} //实际毕业时间
"byxwdm":{string} //毕业学位代码
"byxwmc":{string} //毕业学位名称
"nj":{string} //年级
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 请求示例
GET /v1/stu/profile?access_token=token HTTP/1.1
Host: graphql.sjtu.edu.cn
xh=316203900000
1
2
3
4
2
3
4
# 响应示例
示例 成功返回的数据
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
{
"errno": 0,
"error": null,
"total": 1,
"entities": [{
"accountNo": null,
"xh": "0000000000000",
"xm": "李四",
"xbdm": "1",
"xbmc": "男性",
"csrq": "1999-01-01 00:00:00",
"mzdm": "01",
"mzmc": "汉族",
"zzmmdm": "03",
"zzmmmc": "共青团员",
"jg": "410000",
"jgmc": "河南省",
"hyzkdm": "0",
"hyzkmc": "未婚",
"gbdm": "CN",
"gbmc": "中国",
"zjlb": "01",
"zjlbmc": "身份证",
"sfzhm": "3xx1xx19990101xxxx",
"xldm": "11",
"xlmc": "硕士研究生",
"sydqm": "410000",
"sydqmc": "河南省",
"email": null,
"sj": "12800000000",
"pyfsdm": "1",
"pyfsmc": "非定向",
"glyx": "45000",
"glyxmc": "智慧能源创新学院",
"bh": "B2145091",
"zydm": "085800",
"zymc": "能源动力",
"lxbj": "N",
"lxbjmc": "在校",
"xqdm": "1",
"xqmc": "闵行",
"xslbdm": "211",
"xslbmc": "硕士研究生(普通)",
"xslbmx": null,
"xslbmxmc": null,
"xjztdm": "99",
"xjztmc": "正常",
"xz": "2.5",
"xxfsdm": "4",
"xxfsmc": "全日制",
"sflxs": "0",
"sflxsmc": "否",
"yjbysj": "2024-03-31",
"sjbysj": "2024-03-31",
"byxwdm": "30858",
"byxwmc": "能源动力硕士专业学位",
"nj": "2018"
}]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 课程信息
- GET https://graphql.sjtu.edu.cn/v1/course/info 客户端 exchange_data
课程相关API接口仅返回当前学年数据。
# 请求参数
参数名 | 类型 | 必填 | 参数说明 |
---|---|---|---|
rscGh | string | 否 | 任课老师工号 |
orgId | string | 否 | 开课学院代码 |
courseKcdm | string | 否 | 课程代码 |
courseSchoolyear | string | 否 | 学年 (例:2022-2023) |
courseTerm | string | 否 | 学期 |
instructionalClassId | string | 否 | 课程号 |
timestamp | string | 否 | 更新时间(yyyy-MM-dd/yyyy-MM-dd HH:mm:ss),取大于等于该时间戳的数据 |
first | int | 否 | 分页起始位置 |
offset | string | 否 | 分页偏移量 |
# 响应参数
所有数据资源API响应参数都有相同的通用结构
- 课程信息 Structure
{
"courseId":{string} //课程ID
"courseKcdm":{string} //课程代码
"courseName":{string} //课程名称
"courseNameEn":{string} //课程英文名称
"rscGh":{string} //教职工工号
"jwGh":{string} //教务处工号
"orgId":{string} //开课学院代码
"courseTypeName":{string} //课程类别
"courseHours":{double} //学时
"courseCredit":{double} //学分
"courseSchoolyear":{string} //学年
"courseTerm":{string} //学期
"remark":{string} //备注
"grade":{string} //年级
"instructionalClassId":{string} //课程号
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 请求示例
GET /v1/course/info?access_token=token HTTP/1.1
Host: graphql.sjtu.edu.cn
instructionalClassId=(2022-2023-1)-CS2122-1&courseSchoolyear=2022-2023
1
2
3
4
2
3
4
# 响应示例
示例 成功返回的数据
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
{
"errno": 0,
"error": null,
"total": 1,
"entities": [{
"courseId": "DDCU1MB839CC942DESH3F8163EE1DCCC",
"courseKcdm": "AD017",
"courseName": "美术实践与欣赏",
"courseNameEn": "Art Practice and Appreciation",
"rscGh": "00000",
"jwGh": "00000",
"orgId": "43000",
"courseTypeName": "理论",
"courseHours": 32,
"courseCredit": 2,
"courseSchoolyear": "2022-2023",
"courseTerm": "1",
"remark": "备注信息",
"grade": "2020",
"instructionalClassId": "(2022-2023-1)-CS2122-1"
}]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 排课信息
- GET https://graphql.sjtu.edu.cn/v1/course/plan 客户端 exchange_data
课程相关API接口仅返回当前学年数据。
# 请求参数
参数名 | 类型 | 必填 | 参数说明 |
---|---|---|---|
rscGh | string | 否 | 任课老师工号 |
courseSchoolyear | string | 否 | 学年 (例:2022-2023) |
courseTerm | string | 否 | 学期 |
instructionalClassId | string | 否 | 课程号 |
timestamp | string | 否 | 更新时间(yyyy-MM-dd/yyyy-MM-dd HH:mm:ss),取大于等于该时间戳的数据 |
first | int | 否 | 分页起始位置 |
offset | string | 否 | 分页偏移量 |
# 响应参数
所有数据资源API响应参数都有相同的通用结构
- 排课信息 Structure
{
"courseId":{string} //课程ID
"courseWeekday":{string} //星期
"courseWeekStart":{string} //课程起始周
"courseWeekEnd":{string} //课程结束周
"courseWeek":{string} //周次
"courseWeekOrder":{string} //周序号
"courseSection":{string} //节次
"courseSectionOrder":{stirng} //课程节次序号
"instructionalClassId":{string} //课程号
"courseClassroom":{string} //教室
"courseSchoolyear":{string} //学年
"courseTerm":{string} //学期
"rscGh":{string} //教职工工号
"jwGh":{string} //教务处工号
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 请求示例
GET /v1/course/plan?access_token=token HTTP/1.1
Host: graphql.sjtu.edu.cn
instructionalClassId=(2022-2023-1)-CS2522-1&courseSchoolyear=2022-2023
1
2
3
4
2
3
4
# 响应示例
示例 成功返回的数据
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
{
"errno": 0,
"error": null,
"total": 1,
"entities": [{
"courseId": "DDC0ADB839CC942DE055F8163EE1DCCC",
"courseWeekday": "4",
"courseWeekStart": "1",
"courseWeekEnd": "8",
"courseWeek": "1",
"courseWeekOrder": null,
"courseSection": "1",
"courseSectionOrder": "0",
"instructionalClassId": "(2022-2023-1)-CS2522-1",
"courseClassroom": "东中院2-203",
"courseSchoolyear": "2022-2023",
"courseTerm": "1",
"rscGh": "08337",
"jwGh": "08337"
}]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 选课信息
- GET https://graphql.sjtu.edu.cn/v1/course/selection 客户端 exchange_data
课程相关API接口仅返回当前学年数据。
# 请求参数
参数名 | 类型 | 必填 | 参数说明 |
---|---|---|---|
xh | string | 否 | 学号 |
courseId | string | 否 | 课程ID |
courseSchoolyear | string | 否 | 学年 (例:2022-2023) |
courseTerm | string | 否 | 学期 |
timestamp | string | 否 | 更新时间(yyyy-MM-dd/yyyy-MM-dd HH:mm:ss),取大于等于该时间戳的数据 |
first | int | 否 | 分页起始位置 |
offset | string | 否 | 分页偏移量 |
# 响应参数
所有数据资源API响应参数都有相同的通用结构
- 选课信息 Structure
{
"xh":{string} //学号
"courseId":{string} //课程ID
"courseSchoolyear":{string} //学年
"courseTerm":{string} //学期
}
1
2
3
4
5
6
7
2
3
4
5
6
7
# 请求示例
GET /v1/account/selection?access_token=token HTTP/1.1
Host: graphql.sjtu.edu.cn
xh=020721910253
1
2
3
4
2
3
4
# 响应示例
示例 成功返回的数据
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
{
"errno": 0,
"error": null,
"total": 1,
"entities": [{
"xh": "020722910296",
"courseId": "202209-08200-BME8302-1654530911012",
"courseSchoolyear": "2022-2023",
"courseTerm": "1 "
}]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14