top
关闭

提供者登录

资源接入规范

1.1.第三方资源接入要求
1.1.1.资源数据版权要求
资源提供者需版权证明(软件著作权登记证书、电子出版证明个、著作权许可使用协议、著作权转让协议或授权文件等)
1.1.2.资源数据内容要求
1)资源内容应与教育教学内容相关;
2)资源内容符合国家相关法律法规、 教育方针和教育信息化相关文件精神,坚持政治性、科学性、适用性 原则,符合教育教学规律,不存在强制性收费、植入广告、涉黄涉赌、暴力、反动等方面的问题,同时确保用户在资源产品的使用期限、增值服务、个性化功能、评价反馈和投诉等方面享有充分知情权。
1.1.3.资源数据编目要求
资源编目需按省平台编目接入。编目接口详见1.2.1.3 章节
1.1.4.资源提供者要求
第三方资源提供者应是事业法人、企业法人、社会团体、社会组织等法人机构(暂不包括个人)。
1.2.第三方资源接入
第三资源接入与第三方应用接入流程类似。第三方资源提供者登录省平台,在应用开发页面的“应用材料申报”按钮,在弹出层中选择“第三方资源”,进第三方应用资源申报。后续流程与第三方应用接入类似。

为实现第三方优质资源方便、快捷的引入,省平台支持资源索引信息接入和资源实体文件接入两种方式。第三方资源接入时需进行相关资源接口的申请,待管理员审核通过后,即可对接开发、调试。
1.2.1.第三方资源索引接入
资源索引信息接入是指将资源的基础信息、编目信息及访问页面地址等信息以接口的方式,推入到省平台中。资源的实体文件存储在提供资源的第三方应用中,用户可在省平台的资源频道中检索,用户浏览资源文件时,直接跳转到第三方的应用内查阅。
省平台提供标准规范接口,第三方资源提供者调用资源入库接口、资源编目接口,按资源的编目规范,将资源推送至省平台。入库信息包括:入库方式、资源标题、简介、关键字、资源编目(学段、学科、版本、册别、教材、章节)、资源类型、资源预览地址、文件大小、资源来源、文件后缀。资源浏览和下载能力由第三方提供者提供。

资源索引信息接入流程图
1.2.1.1.获取appid秘钥和appkey
第三方资源提供者可通过应用接入的方式,获取接入应用的appId和appKey。用appId和appKey对接开发应用获取访问令牌,再通过访问令牌调用资源接入接口带入资源目录。(参见应用接入)
示例如下:
appId : c1e1957*
appKey : 70fabe*
1.2.1.2.获取访问令牌
通过appId和appKey获取资源的接口访问权限。调用方式如下:
接口地址:
http://ip:port/apigateway/getAccessToken
请求方式:post
请求参数:
{“appid”:”c1e1957*“,”timestamp”:1565179079173,”keyinfo”:”4cb48f*“}
字段说明:
-appid:应用ID
-timestamp:时间戳
-keyinfo:加密字符串,
加密算法HmacSHA1,加密明文值为appId+ appKey+ timestamp拼接后的字符串,加密key为appKey,加密得到的值为keyinfo参数值

返回参数示例:
{
“tokenInfo”: {
“platformCode”: “**“,
“validTime”: “1565186622059”,
“appName”: “**“,
“accessToken”: “**“,
“appstatus”: “3”,
“appId”: “c1e1957*“,
“account”: “1”
},
“retCode”: “000000”,
“retDesc”: “获取Token成功”
}
1.2.1.3.调用资源编目接口
在进行资源编目入库时,需通过调用资源编目接口获取省平台标准的学段Id、学科Id、版本Id、册别Id、章节Id信息。
业务接口必须通过鉴权调用。(参见6.2.1.2章节)
接口调用方式如下:
url后带上accessToken参数。
例如:http://ip:port/XXX?accessToken=*********
1.2.1.3.1.获取学段列表接口
根据教材数据关联查询学段信息
请求说明
url /cms-gateway/queryPeriods
支持验证方式
格式 application/json
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方CMS
参数说明
序号 字段名 是否必填 类型 说明
1 subjectId N String 学科ID
2 gradeId N String 年级ID
3 volumeId N String 册别ID
4 editionId N String 教材版本ID
举例
{
“subjectId”:”sub”,
“gradeId”:”gra”,
“volumeId”:”vol”,
“editionId”:”edi”
}

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 000000:成功
2 resultDesc Y String
3 data Y JSON
3.1 periodList Y JSON[] 学段列表
3.1.1~3.1.n periodId Y String 学段ID
periodName Y String 学段名称
sortNum N Integer 排序字段
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“periodList”: [
{
“periodId”: “PER0001”,
“periodName”: “小学”
},
{
“periodId”: “PER0004”,
“periodName”: “高中”
}
]
}
}

1.2.1.3.2.获取学科列表接口
根据教材数据关联查询学科信息
请求说明
url /cms-gateway/querySubjects
支持验证方式
格式 application/json
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方CMS

参数说明
序号 字段名 是否必填 类型 说明
1 periodId N String 学段ID
2 gradeId N String 年级ID
3 aamGradeId N String aam年级ID,以aamGradeId查询为主
4 volumeId N String 册别ID
5 editionId N String 教材版本ID
举例
{
“periodId”:”xx”,
“gradeId”:”gra”,
“aamGradeId”:”gra”,
“volumeId”:”vol”,
“editionId”:”edi”
}

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 000000:成功
2 resultDesc Y String
3 data Y JSON
3.1 subjectList Y JSON[] 年级列表
3.1.1~3.1.n subjectId Y String 年级ID
subjectName Y String 年级名称
sortNum N Integer 排序字段
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“subjectList”: [
{
“subjectId”: “SUB0002”,
“subjectName”: “语文”
},
{
“subjectId”: “GRA0004”,
“subjectName”: “数学”
}
]
}
}

1.2.1.3.3.获取版本列表接口
根据教材数据关联查询教材版本信息
请求说明
url /cms-gateway/queryEditions
支持验证方式
格式 application/json
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方CMS

参数说明
序号 字段名 是否必填 类型 说明
1 volumeId N String 册别ID
2 periodId N String 学段ID
3 gradeId N String 年级ID
4 aamGradeId N String aam年级ID,以aamGradeId查询为主
5 subjectId N String 学科ID
举例
{
“volumeId”: “VOL0002”,
“periodId”: “PER0004”,
“gradeId”: “GRA0001”,
“aamGradeId”: “GRA0001”,
“subjectId”: “SUB0005”
}

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 成功: 000000
2 resultDesc Y String 结果描述
3 data Y JSON 结果数据
3.1 editionList Y JSON[]
3.1.1~3.1.n editionId Y String 版本ID
editionName Y String 版本名称
sortNum N Integer 排序字段
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“editionList”: [
{
“editionId”: “EDI2394”,
“editionName”: “人教新课标版”
},
{
“textbookId”: “EDI8494”,
“textbookName”: “人教课标版”
}
]
}
}

1.2.1.3.4.获取册别列表接口
根据教材数据关联查询册别信息
请求说明
url /cms-gateway/queryVolumes
支持验证方式
格式 application/json
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方CMS

参数说明
序号 字段名 是否必填 类型 说明
1 subjectId N String 学科ID
2 gradeId N String 年级ID
3 aamGradeId N String aam年级ID,如果不为空,以aam年级ID查询为主
4 periodId N String 学段ID
5 editionId N String 教材版本ID
举例
{
“subjectId”:”sub”,
“gradeId”:”gra”,
“aamGradeId”:”gra”,
“periodId”:”per”,
“editionId”:”edi”
}

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 000000:成功
2 resultDesc Y String
3 data Y JSON
3.1 volumeList Y JSON[] 册别列表
3.1.1~3.1.n volumeId Y String 册别ID
volumeName Y String 册别名称
sortNum N Integer 排序字段
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“volumeList”: [
{
“volumeId”: “VOL0002”,
“volumeName”: “第二册”
},
{
“volumeId”: “VOL0004”,
“volumeName”: “选修一”
}
]
}
}

1.2.1.3.5.获取教材列表接口
根据条件查询教材列表
请求说明
url /cms-gateway/queryTextbooks
支持验证方式
格式 application/json
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方CMS

参数说明
序号 字段名 是否必填 类型 说明
1 editionId N String 教材版本ID
2 volumeId N String 册别ID
3 periodId N String 学段ID
4 gradeId N String 年级ID
aamGradeId N String aam年级ID
5 subjectId N String 学科ID
举例
{
“editionId”: “EDI0001”,
“volumeId”: “VOL0002”,
“periodId”: “PER0004”,
“gradeId”: “GRA0001”,
“aamGradeId”: “GRA0001”,
“subjectId”: “SUB0005”
}

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 成功: 000000
2 resultDesc Y String 结果描述
3 data Y JSON 结果
3.1 list Y JSON[] 教材列表
3.1.1~3.1.n textbookId Y String 教材ID
textbookName Y String 教材名称
intro N String 教材介绍
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“textbookId”: “10134”,
“textbookName”: “小学语文人教课标版一年级上册(2001)”,
“intro”: “小学语文人教课标版一年级上册”
},

{
  "textbookId": "10138",
  "textbookName": "小学语文人教课标版三年级上册(2001)",
  "intro": "小学语文人教课标版三年级上册"
}

}
1.2.1.3.6.获取章节列表接口
根据教材ID或者章节上级ID查询章节信息
请求说明
url /cms-gateway/queryChapters
支持验证方式
格式 application/json
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方CMS

参数说明
序号 字段名 是否必填 类型 说明
1 parentType Y String 0=根据教材ID查章节
1=根据上级章节ID查章节
2 parentId Y String parentType为0时parentId传教材ID;
parentType为1时parentId传上级章节ID
3 retType Y String 返回类型:
0=返回整棵子树
1=返回下级节点
举例
{
“parentType”: “0”,
“parentId”: “TEX0000345621”,
“retType”: “0”

}

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 000000:成功
2 resultDesc Y String
3 data Y JSON
3.1 list Y JSON[] 结果列表
3.1.1~3.1.n chapterId Y String 章节ID
chapterTitle Y String 章节标题
chapterPid Y String 父章节ID,根节点为0
textbookId Y String 教材ID
depth Y Integer 章节层级
isLeaf Y String 是否叶子节点
Y=是
N=否
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“list”: [
{
“chapterId”: “CHA0000000001”,
“chapterTitle”: “一单元”,
“chapterPid”: “0”,
“textbookId”: “TEX0000000001”,
“chapterLevel”: 2,
“isLeaf”: “N”
},
{
“chapterId”: “CHA0000000002”,
“chapterTitle”: “二单元”,
“chapterPid”: “0”,
“textbookId”: “TEX0000000001”,
“chapterLevel”: 2,
“isLeaf”: “N”
}
]
}
}

1.2.1.4.调用资源编目入库接口
在获取资源编目数据后,资源提供者可通过调用资源入库接口,将包含符合省平台编目规范的资源索引信息推送到省平台中。在进行接口调用时,需主要选择入库的方式及资源的类型格式等信息。
请求说明
url /cms-gateway/importNewProduct
支持验证方式
格式 application/json
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方CMS
参数说明
序号 字段名 是否必填 类型 说明
1 resForm Y String 1=资源索引信息接入;
2=资源实体文件接入
2 intro N String 资源简介
3 keyword N String 关键字
4 periodId Y String 学段Id
5 subjectId Y String 学科Id
6 editionId Y String 版本Id
7 volumeId Y String 册别Id
8 chapterId Y String 章节Id
9 fid N String 实体附件id
resForm = 1 必传
10 url N String 第三方资源链接URL
resForm为2 必传
11 userId Y String 上传用户id
12 title Y String 文件名称
13 fileLength N String 文件大小(字节)
14 classificationId N String jl01:教案 jl01:课件 jl04:习题
jl06:素材 jl12:试卷 jl13:教案
15 resSource Y String 资源来源
16 fileExt Y String 文件格式(文件后缀)
返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 000000:成功
2 resultDesc Y String
3 data Y JSON
举例
{
“result”: “000000”,
“resultDesc”: “success”
“data”:{
“productCode”:“PD747897475880189952”
}

1.2.2.第三方资源实体接入
第三方资源提供者调用资源入库接口、资源编目接口,并根据资源的类型规范,将资源推送至省平台。入库信息包括:入库方式、资源标题、简介、关键字、资源编目(学段、学科、版本、册别、教材、章节)、资源类型、fid、文件大小、资源来源、文件后缀。资源浏览和下载能力由第三方提供者提供。

资源索引信息接入流程图
1.2.2.1.获取appid秘钥和appkey
同1.2.1.1章节
1.2.2.2.获取访问令牌
同1.2.1.2章节
1.2.2.3.调用文件上传接口
第三方资源提供者采用资源实体文件接入的方式时,需要调用文件上传接口,将实体文件上传到省平台中。文件上传接口支持小文件上传和大文件断点续传2中上传方式。
文件上传相关接口不支持通过访问令牌的方式调用,需直接调用。
(1)小文件上传(文件小于等于100M使用)
请求说明 【适用于小文件上传 大文件上传须走分片上传】
url /cms-ft/uploadify
支持验证方式
格式 multipart/form-data
协议 post
是否需要鉴权 false
请求数限制 false
接口方向

参数说明
序号 字段名 是否必填 类型 长度 说明
1 fileData Y Stream Bytes 文件流
举例

返回说明
序号 字段名 是否必填 类型 长度 说明
1 fid Y Long 文件ID
举例
{fid:2438652}

(2)大文件上传(文件大于100M使用)
先调用断点续传—创建文件接口将资源文件分片;然后调用断点续传—文件续传接口将文件分片上传。当暂停上传、上传异常等情况时,可调用断点续传—获取未完成的文件接口,获取还未上传完成的分片,然后通过调用断点续传—文件续传接口继续上传。
断点续传—创建文件接口
请求说明
url /cms-ft/createFid
支持验证方式
格式 text/plain
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方->cms

参数说明
序号 字段名 是否必填 类型 说明
1 fileMd5 Y String 文件MD5值
2 userId Y String 用户ID
3 fileLength Y String 文件大小:单位字节(byte)
4 filePathLocal Y String 文件在本地的路径
举例
模拟form表单post提交即可

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 000000:成功
100000:失败
2 resultDesc Y String 结果描述
3 data Y JSON 数据
3.1~3.n fid Y Long 文件ID
fileLength Y Long 文件大小 单位字节
fileMd5 Y String 文件MD5值
fileNameLocal Y String 文件名
filePathLocal Y String 文件本地路径
filePos Y Long 文件续传位置
fileSize Y String 格式化的文件大小
fileExt Y String 文件后缀
postComplete Y String 是否上传完成
“false”=否;
“yes”=是
postedLength Y Long 已上传的文件大小
postedTime Y String 上传时间
userId Y String 用户ID
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“fid”: 4746964,
“fileLength”: 26051823,
“fileMd5”: “bf476d952cfc4f5727678869e692e235”,
“fileNameLocal”: “基础数据-整合(新).xlsx”,
“filePathLocal”: “D:/files/20150402/基础数据-整合(新).xlsx”,
“filePos”: 0,
“fileSize”: “24.84MB”,
“fileExt”: “xlsx”,
“isDeleted”: “false”,
“postComplete”: “false”,
“postedLength”: 0,
“postedTime”: “2015-04-20 17:13:47”,
“userId”: “5feda533f2a24a65b4113d8d3146a8db”
}
}

断点续传—文件续传接口
请求说明
url /cms-ft/fileResume
支持验证方式
格式 multipart/form-data
协议 post
是否需要鉴权 false
请求数限制 false
接口方向 第三方->cms

参数说明
序号 字段名 是否必填 类型 说明
1 fid Y String 文件ID
2 userId Y String 用户ID
3 fileLength Y String 文件大小:单位字节(byte)
5 fileMd5 Y String 文件MD5值
6 fileNameLocal Y String 文件名称
7 filePos Y String 文件位置
8 part Y byte[] 文件块流
举例
模拟form表单post提交即可

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 000000:成功
100000:失败
2 resultDesc Y String 结果描述
3 data Y JSON 数据
3.1~3.n fid Y Long 文件ID
fileLength Y Long 文件大小 单位字节
fileMd5 Y String 文件MD5值
fileNameLocal Y String 文件名
filePathLocal Y String 文件本地路径
filePos Y Long 文件续传位置
fileSize Y String 格式化的文件大小
fileExt Y String 文件后缀
postComplete Y String 是否上传完成
“false”=否;
“yes”=是
postedLength Y Long 已上传的文件大小
postedTime Y String 上传时间
userId Y String 用户ID
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“fid”: 4746964,
“fileLength”: 26051823,
“fileMd5”: “bf476d952cfc4f5727678869e692e235”,
“fileNameLocal”: “基础数据-整合(新).xlsx”,
“filePathLocal”: “D:/files/20150402/基础数据-整合(新).xlsx”,
“filePos”: 0,
“fileSize”: “24.84MB”,
“fileExt”: “xlsx”,
“isDeleted”: “false”,
“postComplete”: “false”,
“postedLength”: 0,
“postedTime”: “2015-04-20 17:13:47”,
“userId”: “5feda533f2a24a65b4113d8d3146a8db”
}
}

断点续传—获取未完成的文件接口
请求说明
url /cms-ft/uncompletedFiles
支持验证方式
格式 text/plain
协议 get/post
是否需要鉴权 false
请求数限制 false
接口方向 第三方->cms

参数说明
序号 字段名 是否必填 类型 说明
1 userId Y String 用户ID
举例
/cms-ft/uncompletedFiles?userId=5feda533f2a24a65b4113d8d3146a8db

返回说明
序号 字段名 是否必填 类型 说明
1 result Y String 000000:成功
100000:失败
2 resultDesc Y String 结果描述
3 data Y JSON 数据
3.1 uncompletedFiles Y JSON[] 文件列表
3.1.1~3.1.n fid Y Long 文件ID
fileLength Y Long 文件大小 单位字节
fileMd5 Y String 文件MD5值
fileNameLocal Y String 文件名
filePathLocal Y String 文件本地路径
filePos Y Long 文件续传位置
fileSize Y String 格式化的文件大小
fileExt Y String 文件后缀
postComplete Y String 是否上传完成
“false”=否;
“yes”=是
postedLength Y Long 已上传的文件大小
postedTime Y String 上传时间
userId Y String 用户ID
举例
{
“result”: “000000”,
“resultDesc”: “success”,
“data”: {
“uncompletedFiles”: [
{
“fid”: 4746964,
“fileLength”: 26051823,
“fileMd5”: “bf476d952cfc4f5727678869e692e235”,
“fileNameLocal”: “基础数据-整合(新).xlsx”,
“filePathLocal”: “D:/files/20150402/基础数据-整合(新).xlsx”,
“filePos”: 0,
“fileSize”: “24.84MB”,
“fileExt”: “xlsx”,
“isDeleted”: “false”,
“postComplete”: “false”,
“postedLength”: 0,
“postedTime”: “2015-04-20 17:13:47”,
“userId”: “5feda533f2a24a65b4113d8d3146a8db”
}
]
}
}

1.2.2.4.调用资源编目接口
在进行资源入库时,需通过调用资源编目接口获取省平台标准的学段Id、学科Id、版本Id、册别Id、章节Id信息。
接口同1.2.1.3 章节
1.2.2.5.调用资源入库接口
在获取资源编目数据后,第三方资源提供者可通过调用资源入库接口(接口详见资源入库接口),将包含符合省平台编目规范的资源索引信息推送到省平台中。在进行接口调用时,需主要选择入库的方式及资源的类型格式等信息。
接口同1.2.1.4章节