### 1.api接口说明
* 考试星api接口采用jwt规范。Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519)。[JWT调用示例代码](https://www.kancloud.cn/exam-star/ksxhelp_1/1797394)
### 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>
```
</dependency>
(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 | 在线学习时长 |
| 702 | 获取考试和考试结果整合信息 |
### 6.当前开放的请求接口
(1)考试信息列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数编号 | 参数名称 | 参数值示例 | 参数描述 |
|:----|:----|:----|:----|
| 1 | page | 3 | 页码,每页10个 |
| | | | |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|:----|:----|:----:|:----|:----|
| examInfoId | 考试ID | String,下同 | |
| examName | 考试名称 | | |
| examTotalScore | 考试总分 | | |
| passMark | 及格分 | | |
| examTime | 答题时长 | | |
| examStartTime | 考试开始时间 | | |
| examEndTime | 考试结束时间 | | |
| examineeNums | 应考人数 | | |
| maxScore | 最高分 | | |
| avgScore | 平均分 | | |
| minScore | 最低分 | | |
| testNums | 试题数 | | |
| userExamedCount | 已考人数 | | |
| userCommitCount | 已交卷人数 | | |
(2)考生分数列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数编号 | 参数名称 | 参数值示例 | 参数描述 |
|:----|:----|:----|:----|
| 1 | examInfoId | 119551 | 考试id |
| 2 | page | 3 | 页码,每页500个 |
| | | | |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|:----|:----|:----|:----|:----|:----|
| userId | 考生ID | String,下同 | 员工号 |
| uesrName | 考生姓名 | | |
| depName | 部门 | | |
| position | 职位 | | |
| ansTime | 答题时长 | | |
| startTime | 开始时间 | | |
| commitTime | 交卷时间 | | |
| score | 成绩 | | |
| rank | 排名 | | |
| isPass | 是否通过考试 | | |
| result | 考试情况 | String,取值枚举:</br>及格</br>不及格</br>漏考| |
| isForce | 是否强制交卷 |int,取值枚举:</br> 0--否 </br>2--是(切屏防作弊 )</br>3--是(x秒无操作自动交卷 )</br>4--是(闯关失败 )</br>6--是(管理员强制交卷</br>7--是(人脸识别失败次数超限)</br>- 未参与学员 | 可以用该字段判断学员是否违规|
| note | 备注 | | |
| field1 | 自定义字段1 | | |
| field2 | 自定义字段2 | | |
| field3 | 自定义字段3 || |
| field4 | 自定义字段4 | | |
| field5 | 自定义字段5 | | |
(3)试卷试题列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数编号 | 参数名称 | 参数值示例 | 参数描述 |
|:----|:----|:----|:----|
| 1 | examInfoId | 119551 | 考试id |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|:----|:----|:----:|:----|:----:|:----|
| testId | 试题ID | String,下同 | |
| testName | 试题大题 | | |
| testType | 试题类型 | | |
| testContent | 试题内容及答案 | | |
(4)考生答案列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数编号 | 参数名称 | 参数值示例 | 参数描述 |
|:----|:----|:----|:----|
| 1 | examInfoId | 119551 | 考试id |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|:----|:----|:----:|:----|:----:|:----|
| userId | 考生ID | String | |
| ansAndScore | 考试答案和得分 | JsonString | |
(5)在线学习内容列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数编号 | 参数名称 | 参数值示例 | 参数描述 |
|:----|:----:|:----|:----:|:----|:----:|:----|
| 1 | page | 3 | 页码,每页20个 |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|:----|:----:|:----|:----:|:----|:----:|:----|
| courseId | 课程ID | String | |
| courseName | 课程名称 | String | |
(6)在线学些时长列表接口:
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数编号 | 参数名称 | 参数值示例 | 参数描述 |
|:----|:----:|:----|:----|:----:|:----|:----:|
| 1 | courseId | 12345 | 课程id |
| 2 | page | 3 | 页码,每页500个 |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|:----|:----:|:----|:----:|:----|:----:|:----|
| userId | 用户ID | String | |
| studyTime | 学习时长 | String | |
(7)获取考生可见考试和考试结果整合列表
请求地址:https://api.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo
请求方法:post
请求参数:
| 参数编号 | 参数名称 | 参数值示例 | 参数描述 |
|:----|:----:|:----|:----|:----:|:----|:----:|
| 1 | user\_id | 123456 | 用户id |
| 2 | page | 3 | 页码,每页500个 |
返回结果:
| 参数名称 | 参数描述 | 类型 | 备注 |
|:----|:----:|:----|:----:|
| 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 | |
- 常见问题
- 如何发布一场考试?
- 如何创建一个课程?
- 如何发布一场直播?
- 如何发布一场每日学练计划?
- 如何创建一个自定义任务?
- 如何在考试星系统中调用摄像头
- 如何开通专属微信小程序?
- 如何规范考生答题前人脸识别核验?
- 【会否培训平台】功能概述
- 第一部分 后台管理端使用文档
- 第一章 首页
- 第二章 考试
- 防作弊功能介绍
- 分题流水判卷功能讲解
- 监考视频下载工具
- 第三章 学习项目(原任务流程)
- 第四章 课程
- 第五章 直播
- 第六章 每日学练
- 第七章 线下培训(仅支持移动端)
- 第八章 报名
- 第九章 问卷
- 第十章 证书
- 第十一章 数据中心
- 第十二章 资源管理
- 第十三章 学员管理
- 第十四章 公告管理
- 第十五章 店铺管理
- 第十六章 系统设置
- 第二部分 学员端产品使用文档
- 第一章 学员注册与登录
- 第二章 学员学习中心——PC端
- 第三章 学员学习中心——H5端
- 第三部分:开发者文档
- 考试星登录接口文档
- 考试星数据接口文档
- 考试星对外推送接口文档
- 示例代码
- SHA256加密示例(java)
- 上传人脸照片
- 第四部分:推送平台设置文档
- 微信公众号消息推送配置文档
- 《考试星在线考试系统》白皮书