数据同步
通用说明
平台支持定制化的数据同步接口,可以按需定制字段并提供全量同步和增量同步的调用支持。
部分常用数据的同步接口已经标准化,参考下文的通用同步接口说明,并申请对应接口即可。
如业务有额外的数据同步需求,请与我们联系。
对于定制接口,以下示例仅供参考,实际接口调用文档已最终交付版本为准。
支持的模式
- client_credentials
请求方法
GET
请求地址
https://api.ecnu.edu.cn/api/v1/xxxxxxxxx
通用请求参数
参数名 | 是否必填 | 备注 |
---|---|---|
ts | 是 | 增量时间戳,单位是秒,返回该时间戳之后产生变更的数据。输入 ts=0 即返回全量数据 |
full | 否 | 默认仅返回有效数据(有效的含义根据实际业务决定),如果 full 参数有值(无论是什么),都会返回全部数据,包括已经被删除的数据 |
pageSize | 是 | 单页大小,最大10000 |
pageNum | 是 | 第几页,从第一页开始 |
通用返回参数
字段名 | 说明 | 备注 |
---|---|---|
totalNum | 数据总量 | |
pageSize | 单页大小 | |
pageNum | 第几页 | |
rows | 数据列表 | 数据在 rows 内 |
rows.created_at | 创建时间 | |
rows.updated_at | 更新时间 | 当数据任意字段内容更新时,updated_at 会自动更新时间,因此可用于增量同步 |
rows.deleted_mark | 删除时间 | 如果上游系统删除了某条数据,则会产生对应的标记,同步数据时可以根据这些标记做对应的增量处理,1删除0未删除 |
rows.xxxxxxx | 业务字段 | 业务字段 |
全量同步示例
curl -i -H "Authorization: Bearer e447e4b4b8e23973b42c44b8d5415603" "https://api.ecnu.edu.cn/api/v1/customized/xxxxxxxxx?pageSize=2&pageNum=1&ts=0"
返回示例
json
{
"data": {
"totalNum": 18839,
"pageSize": 2,
"rows": [{
"deleted_mark":0,
"created_at": "2021-12-22 20:05:15",
"xxxx":"xxxx",
"updated_at": "2023-05-09 02:15:35"
},{
"deleted_mark":0,
"xxxx":"xxxx",
"created_at": "2021-12-22 20:05:15",
"updated_at": "2023-05-09 02:15:35",
}],
},
"requestId": "6a0f0ef016232902185634755e05d2",
"errCode": 0,
"errMsg": "success",
"apiLog": null
}
增加量同步示例
curl -i -H "Authorization: Bearer e447e4b4b8e23973b42c44b8d5415603" "https://api.ecnu.edu.cn/api/v1/customized/xxxxxxxxx?pageSize=10&pageNum=1&ts=1623161010"
即返回 updated_at
在 2021-06-08 22:03:30
之后的数据
返回示例
json
{
"data": {
"totalNum": 1,
"pageSize": 10,
"rows": [{
"deleted_mark":1,
"created_at": "2021-12-22 20:05:15",
"xxxx":"xxxx",
"updated_at": "2023-05-09 02:15:35"
}],
},
"requestId": "6a0f0ef016232902185634755e05d2",
"errCode": 0,
"errMsg": "success",
"apiLog": null
}
通用人员信息同步
请求地址
https://api.ecnu.edu.cn/api/v1/sync/userinfo
请求参数
参数名 | 是否必填 | 备注 |
---|---|---|
ts | 是 | 增量时间戳,单位是秒,返回该时间戳之后产生变更的数据。输入 ts=0 即返回全量数据 |
full | 否 | 默认仅返回在校且未标记删除的数据,如果 full 参数有值(无论是什么),都会返回全部数据 |
pageSize | 是 | 单页大小,最大10000 |
pageNum | 是 | 第几页,从第一页开始 |
返回参数
参数名 | 类型 | 备注 |
---|---|---|
created_at | string | 数据创建的时间 |
updated_at | string | 数据更新的时间 |
deleted_mark | int | 是否已删除的标记,0未删,1已删除 |
userId | string | 学工号 |
name | string | 姓名 |
departmentId | string | 部门编号 |
department | string | 部门名称 |
active | string | 是否在校,1在校,0离校 |
userType | string | 用户类型,本科生、研究生、教职工、丽娃人员、临时人员、博士后 |
返回示例
json
{
"data": {
"totalNum": 58838,
"pageSize": 2,
"rows": [{
"created_at": "2021-12-22 20:05:14",
"updated_at": "2023-05-09 02:15:33",
"deleted_mark": 0,
"userId": "******",
"name": "**",
"departmentId": "011004",
"department": "运动训练系",
"active": "1",
"userType": "本科生"
}, {
"created_at": "2021-12-22 20:05:14",
"updated_at": "2023-05-09 02:15:33",
"deleted_mark": 0,
"userId": "******",
"name": "**",
"departmentId": "0155",
"department": "数学科学学院",
"active": "1",
"userType": "本科生"
}],
"pageNum": 1
},
"errCode": 0,
"requestId": "955371B1-9685-43DE-8328-94D02DB59015",
"errMsg": "success"
}
通用DNS记录同步
请求地址
https://api.ecnu.edu.cn/api/v1/sync/dnsrecord
请求参数
参数名 | 是否必填 | 备注 |
---|---|---|
ts | 是 | 增量时间戳,单位是秒,返回该时间戳之后产生变更的数据。输入 ts=0 即返回全量数据 |
full | 否 | 默认仅返回未标记删除的数据,如果 full 参数有值(无论是什么),都会返回全部数据 |
pageSize | 是 | 单页大小,最大10000 |
pageNum | 是 | 第几页,从第一页开始 |
返回参数
参数名 | 类型 | 备注 |
---|---|---|
created_at | string | 数据创建的时间 |
updated_at | string | 数据更新的时间 |
deleted_mark | int | 是否已删除的标记,0未删,1已删除 |
id | int | 记录id |
name | string | 记录名称 |
type | string | 记录类型 |
content | string | 记录内容 |
domain | string | 域名 |
返回示例
json
{
"data": {
"totalNum": 1950,
"pageSize": 2,
"rows": [{
"createdAt": "2022-01-06 00:16:26",
"updatedAt": "2022-01-06 00:16:26",
"deleted_mark": 0,
"id": 1,
"name": "www.ecnu.edu.cn",
"type": "A",
"content": "202.120.92.60",
"domain": "ecnu.edu.cn"
}, {
"createdAt": "2022-01-06 00:16:26",
"updatedAt": "2022-01-06 00:16:26",
"deleted_mark": 0,
"id": 2,
"name": "www.ecnu.edu.cn",
"type": "AAAA",
"content": "2001:da8:8005:a492::60",
"domain": "ecnu.edu.cn"
}],
"pageNum": 1
},
"errCode": 0,
"requestId": "A4C15F4C-B53B-43CA-8B95-B9BA273B55B7",
"errMsg": "success"
}