1.api接口说明
- 考试星api接口采用jwt规范。Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519)。JWT调用示例代码
2.api参数配置
- appId : 客户唯一标识符,由考试星提供,例如:14343。
- appKey : 用于加密jwt,由考试星提供,例如:xf5ha3h67h4Ger34wh35p345h4。
- 获取方式:【管理员后台:系统设置->更多设置->开发者信息管理】
3.api统一接口地址
- 地址: https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
- **jwtInfo:**jwt_info是用户根据jwt规范,用app_key将过期时间、action_id加密,生成的加密字符串
4.生成加密jwtInfo(java示例)
(1).安装依赖
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.7.0</version>
(2).生成加密字符串
生成jwtInfo加密字符串
import io.jsonwebtoken.Jwts;
String appKey = “xf5ha3h67h4Ger34wh35p345h4”
String jwtInfo = Jwts.builder()
.claim("exp", System. currentTimeMillis() + 1000*10)
.claim("action_id", "201")
.signWith(SignatureAlgorithm.HS256,app_key.getBytes("UTF-8")).compact();
(3).加密参数解释
appKey:加密的私钥,由考试星提供。 exp:过期时间。 action_id:表示请求的数据类型(注意是下划线)。
5.action_id参数解释
不同的action_id代表不同的请求行为,目前开放的请求行为如下:
| 请求行为编码 | 行为解释 |
|---|---|
| 601 | 考试信息列表 |
| 602 | 考生分数列表 |
| 603 | 试卷试题列表 |
| 604 | 考生答案列表 |
| 605 | 在线学习内容表 |
| 606 | 在线学习时长 |
| 609 | 学员列表 |
| 702 | 获取考试和考试结果 |
6.当前开放的请求接口
(1)考试信息列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数编号 | 参数名称 | 参数值示例 | 参数描述 |
|---|---|---|---|
| 1 | page | 3 | 页码,每页10个 |
| 2 | examStartTime | 2021-12-27 00:00:00 | String类型,筛选出考试开始时间大于等于examStartTime的考试,非必传项 |
| 3 | examEndTime | 2021-12-27 00:00:00 | String类型,筛选出考试结束时间小于等于examEndTime的考试,非必传项 |
| 4 | createTime | 2021-12-27 00:00:00 | String类型,筛选出考试创建时间大于等于createTime的考试,非必传项 |
| 5 | examIds | 1179422,1171758 | String类型,筛选出考试id为examIds的几场考试,非必传项 |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
| examInfold | 考试ID | String,下同 | |
| examName | 考试名称 | ||
| examTotalScore | 考试总分 | ||
| passMark | 及格分 | ||
| examTime | 答题时长 | ||
| examStartTime | 考试开始时间 | ||
| examEndTime | 考试结束时间 | ||
| examineeNums | 应考人数 | ||
| maxScore | 最高分 | ||
| avgScore | 平均分 | ||
| minScore | 最低分 | ||
| testNums | 试题数 | ||
| userExamedCount | 已考人数 | ||
| userCommitCount | 已交卷人数 | ||
| examLink | 考试链接 | ||
| examCreatTime | 创建考试时间 |
(2)考生分数列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
返回结果:
| 参数名称 | 参数描述 | 参数类型 | 备注 |
|---|---|---|---|
| userId | 考生账号 | String | |
| userName | 考生姓名 | String | |
| depName | 部门名称 | String | |
| position | 职位 | String | |
| ansTime | 答题时长 | String | |
| startTime | 开始时间 | String | |
| commitTime | 交卷时间 | String | |
| score | 成绩 | String | |
| rank | 排名 | String | |
| isPass | 是否通过 | String | |
| result | 考试情况 | String,取值枚举: 及格,不及格,漏考 | |
| isForce | 是否强制交卷 | Integer,取值枚举 0--否 | |
| note | 备注 | String | |
| field1 | 自定义字段1 | String | |
| field2 | 自定义字段2 | String | |
| field3 | 自定义字段3 | String | |
| field4 | 自定义字段4 | String | |
| field5 | 自定义字段5 | String |
(3)试卷试题列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
返回结果:
(4)考生答案列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数名称 | 参数描述 | 类型 | 备注 |
|---|---|---|---|
| examInfoId | 考试id | int | 119511 |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|---|---|---|---|
| userId | 账号 | String | |
| ansAndScore | 考生答案和得分 | JsonString |
(5)在线学习内容列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|---|---|---|---|
| courseID | 课程ID | string | |
| courseName | 课程名称 | string | |
| courseCreateTime | 课程创建时间 | string | |
| courseUpdateTime | 课程最后一次修改时间 | string | |
| courseTime | 学习课程所需最短时间 | int | 单位秒 |
| courseStuNum | 应参与该课程的人数 | int |
(6)在线学习时长列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|---|---|---|---|
| userId | 账号 | String | |
| studyTime | 学习时长 | String | |
| finishStatus | 完成进度 | String | |
| courseTime | 学习课程所需最短时间 | int | 单位 秒 |
(7)获取考生可见考试和考试结果整合列表
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|---|---|---|---|
| examInfoId | 考试id | int | |
| examStyleName | 考试类型 | String | |
| examName | 考试名称 | String | |
| examStartTime | 考试开始时间 | String | |
| examEndTime | 考试结束时间 | String | |
| examTimeRestrict | 是否限制每题时长 | String | |
| examTime | 考试时长(分钟) | int | |
| examResultsId | 考试结果id | int | |
| results | 分数 | double | |
| isPass | 是否通过 | int | |
| examLink | 考试链接 | String | |
| inquireLink | 查询结果链接 | String | |
| practiceMode | 是否联系模式 | int | |
| status | 考试状态 | String | examing:答题中、checked:已批改可查看、 checking:批改中不可查看、new:未作答、 notReleased:暂不公布不可查看 |
(8)获取学员列表
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数名称 | 参数值示例 | 参数描述 |
|---|---|---|
| page | 1 | 页面id |
返回结果
| 参数名称 | 参数描述 | 类型 | 备注 |
|---|---|---|---|
| page | 页码 | int | 每页20条 |
| userId | 用户ID | int | |
| userName | 账号 | string | |
| surname | 姓名 | string | |
| departmentName | 部门,从根目录往下,例如“部门分类/部门” | string | |
| userPoint | 积分 | int | |
| lastLoginTime | 最近登录时间 | string | |
| isBindWechatDesc | 是否绑定微信 | string | 1代表已绑定,0代表未绑定 |
| userLableNames | 学员标签,标签间以逗号隔开 | string | 仅在学员标签功能开启时生效,功能关闭时返回null |
| status | 状态 | string | 0正常,1禁用,2临时账号 |
| permission | 权限 | int | 0代表考试星;1代表会否;2代表全部都有;3代表全部没有 |
| creater | 创建人 | int | 创建账号的用户id |
| createTime | 创建时间 | string | |
| phone | 手机 | string | 未设置时返回null |
| 证件号 | string | 未设置时返回null | |
| position | 职位 | string | 未设置时返回null |
| identityCard | 证件号 | string | 未设置时返回null |
| notice | 备注 | string | 未设置时返回null |
| field1 | 字段1 | string | 未设置时返回null |
| field2 | 字段2 | string | 未设置时返回null |
| field3 | 字段3 | string | 未设置时返回null |
| field4 | 字段4 | string | 未设置时返回null |
| field5 | 字段5 | string | 未设置时返回null |
| identityImg | 证件照url | string | 未设置时返回null |