用AI帮忙,开发刷题小程序:软考真经微信小程序API接口文档(更新版)
用AI帮忙,开发刷题小程序:软考真经微信小程序API接口文档(更新版)
1. 概述
本文档详细描述了软考真经微信小程序项目中使用的全部REST API接口。该小程序是一个在线考试和学习工具,主要面向软考(计算机技术与软件专业技术资格考试)考生。
2. 基础配置
2.1 环境配置
项目支持三种环境:
-
开发环境 (develop)
- 基础URL:
http://192.168.16.197
- 调试模式: 开启
- 错误报告: 关闭
- 基础URL:
-
体验环境 (trial)
- 基础URL:
https://rk.vip.cpolar.cn
- 调试模式: 关闭
- 错误报告: 开启
- 基础URL:
-
生产环境 (release)
- 基础URL:
https://rk.vip.cpolar.cn
- 调试模式: 关闭
- 错误报告: 开启
- 基础URL:
2.2 认证方式
所有API请求都需要在请求头中包含认证信息:
Authorization: <token>
其中[token]通过微信登录接口获取并存储在本地。
3. API接口列表
3.1 认证相关接口
3.1.1 微信登录
-
接口地址:
/api/auth/wechat
-
请求方法:
POST
-
请求参数:
{"code": "string" // 微信登录凭证 }
-
响应数据:
{"token": "string", // 用户认证令牌"openid": "string" // 微信用户唯一标识 }
-
使用场景: 用户首次登录小程序时调用,获取用户认证令牌
3.1.2 用户信息
-
接口地址:
/api/user/userinfo
-
请求方法:
POST
-
请求参数:
{"encryptedData": "string", // 加密的用户数据"iv": "string" // 加密算法的初始向量 }
-
响应数据: 无特定格式
-
使用场景: 获取并解密用户个人信息
3.2 考试相关接口
3.2.1 开始考试
-
接口地址:
/api/exam/start
-
请求方法:
POST
-
请求参数:
{"paperId": "number" // 试卷ID }
-
响应数据:
{"data": {"id": "number", // 考试记录ID"paperId": "number", // 试卷ID"userId": "number", // 用户ID"userScore": "number", // 用户得分"userTotal": "number", // 总分"startTime": "string", // 开始时间"finishTime": "string", // 结束时间"timeUsed": "number", // 用时(秒)"accuracy": "number", // 正确率"submitTime": "string" // 提交时间} }
-
使用场景: 用户开始新的考试时调用,创建考试记录
3.2.2 获取题目列表
-
接口地址:
/api/paper-questions/question-list
-
请求方法:
GET
-
请求参数:
recordId=number // 考试记录ID paperId=number // 试卷ID
-
响应数据:
{"examPaper": {"id": "number", // 试卷ID"name": "string", // 试卷名称"totalScore": "number", // 总分"passScore": "number" // 及格分数},"questionAnswerList": [{"questionId": "number", // 题目ID"questionNo": "number", // 题号"content": "string", // 题干内容"options": [ // 选项列表{"questionNo": "number", // 题号"optionNo": "string", // 选项编号(A,B,C,D)"content": "string" // 选项内容}],"correctAnswer": "string", // 正确答案"answerAnalysis": "string", // 答案解析"userAnswer": "string" // 用户答案}] }
-
使用场景: 加载试卷题目列表,用于答题、背题、查看答题详情等场景
3.2.3 获取错题列表
- 接口地址:
/api/paper-questions/wrong-question-list
- 请求方法:
GET
- 请求参数: 无
- 响应数据: 与题目列表接口格式相同
- 使用场景: 加载用户错题列表,用于错题练习
3.2.4 提交答案
-
接口地址:
/api/exam/answer
-
请求方法:
POST
-
请求参数:
{"recordId": "number", // 考试记录ID"paperId": "number", // 试卷ID"questionId": "number", // 题目ID"userAnswer": "string", // 用户答案"isCorrect": "number", // 是否正确(1:正确, 0:错误)"spentTime": "number" // 答题用时(秒) }
-
响应数据:
{"code": "number" // 200表示成功 }
-
使用场景: 用户作答后提交答案
3.2.5 结束考试
-
接口地址:
/api/exam/finish
-
请求方法:
POST
-
请求参数:
{"paperId": "number", // 试卷ID"recordId": "number" // 考试记录ID }
-
响应数据:
{"data": {"id": "number", // 考试记录ID"paperId": "number", // 试卷ID"userId": "number", // 用户ID"userScore": "number", // 用户得分"userTotal": "number", // 总分"startTime": "string", // 开始时间"finishTime": "string", // 结束时间"timeUsed": "number", // 用时(秒)"accuracy": "number", // 正确率"submitTime": "string" // 提交时间} }
-
使用场景: 用户完成所有题目后结束考试
3.3 统计相关接口
3.3.1 获取统计数据
-
接口地址:
/api/exam/statistics
-
请求方法:
GET
-
请求参数: 无
-
响应数据:
{"data": {"studyHours": "number", // 学习小时数"questionCount": "number", // 练习题目数"correctCount": "number" // 答对题目数} }
-
使用场景: 获取用户学习统计数据,用于展示学习成果
4. 错误处理
所有API接口遵循HTTP状态码规范:
200
: 请求成功400
: 请求参数错误401
: 未授权访问404
: 资源不存在500
: 服务器内部错误
当状态码不为200时,响应体中会包含错误信息:
{"code": "number", // 错误码"message": "string" // 错误描述
}
5. 使用示例
5.1 开始考试
const examRecord = await this.examStart(paperId);
5.2 获取题目列表
const examPaperResponse = await ExamUtils.fetchQuestionList(recordId, paperId);
5.3 提交答案
const result = await ExamUtils.answer(recordId, paperId, questionId, userAnswer, isCorrect ? 1 : 0, 30
);
5.4 结束考试
const examRecord = await ExamUtils.examFinish(paperId, recordId);
6. 注意事项
- 所有API请求都需要携带有效的Authorization头
- 接口地址会根据当前环境自动拼接完整URL
- 响应数据格式可能根据后端服务更新而变化
- 开发过程中建议使用开发环境以便调试
- 生产环境应确保网络连接稳定,做好错误处理
以上是软考真经微信小程序项目的完整API接口文档。开发人员可以基于此文档进行接口调用和功能开发。
项目源码地址:https://gitee.com/alioo/ruankao
想要体验小程序的朋友可以通过以下二维码进行访问:
小程序界面效果展示(页面配色、布局全靠AI帮忙):