用AI帮忙,开发刷题小程序:软考真经微信小程序API接口文档(更新版)

用AI帮忙,开发刷题小程序:软考真经微信小程序API接口文档(更新版)

1. 概述

本文档详细描述了软考真经微信小程序项目中使用的全部REST API接口。该小程序是一个在线考试和学习工具,主要面向软考(计算机技术与软件专业技术资格考试)考生。

2. 基础配置

2.1 环境配置

项目支持三种环境:

  1. 开发环境 (develop)

    • 基础URL: http://192.168.16.197
    • 调试模式: 开启
    • 错误报告: 关闭
  2. 体验环境 (trial)

    • 基础URL: https://rk.vip.cpolar.cn
    • 调试模式: 关闭
    • 错误报告: 开启
  3. 生产环境 (release)

    • 基础URL: https://rk.vip.cpolar.cn
    • 调试模式: 关闭
    • 错误报告: 开启

2.2 认证方式

所有API请求都需要在请求头中包含认证信息:

复制代码
Authorization: <token>

其中[token]通过微信登录接口获取并存储在本地。

3. API接口列表

3.1 认证相关接口

3.1.1 微信登录
  • 接口地址 : /api/auth/wechat

  • 请求方法 : POST

  • 请求参数:

    json 复制代码
    {
      "code": "string" // 微信登录凭证
    }
  • 响应数据:

    json 复制代码
    {
      "token": "string",   // 用户认证令牌
      "openid": "string"   // 微信用户唯一标识
    }
  • 使用场景: 用户首次登录小程序时调用,获取用户认证令牌

3.1.2 用户信息
  • 接口地址 : /api/user/userinfo

  • 请求方法 : POST

  • 请求参数:

    json 复制代码
    {
      "encryptedData": "string", // 加密的用户数据
      "iv": "string"             // 加密算法的初始向量
    }
  • 响应数据: 无特定格式

  • 使用场景: 获取并解密用户个人信息

3.2 考试相关接口

3.2.1 开始考试
  • 接口地址 : /api/exam/start

  • 请求方法 : POST

  • 请求参数:

    json 复制代码
    {
      "paperId": "number"  // 试卷ID
    }
  • 响应数据:

    json 复制代码
    {
      "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

  • 请求参数:

    query 复制代码
    recordId=number  // 考试记录ID
    paperId=number   // 试卷ID
  • 响应数据:

    json 复制代码
    {
      "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

  • 请求参数:

    json 复制代码
    {
      "recordId": "number",    // 考试记录ID
      "paperId": "number",     // 试卷ID
      "questionId": "number",  // 题目ID
      "userAnswer": "string",  // 用户答案
      "isCorrect": "number",   // 是否正确(1:正确, 0:错误)
      "spentTime": "number"    // 答题用时(秒)
    }
  • 响应数据:

    json 复制代码
    {
      "code": "number"  // 200表示成功
    }
  • 使用场景: 用户作答后提交答案

3.2.5 结束考试
  • 接口地址 : /api/exam/finish

  • 请求方法 : POST

  • 请求参数:

    json 复制代码
    {
      "paperId": "number",  // 试卷ID
      "recordId": "number"  // 考试记录ID
    }
  • 响应数据:

    json 复制代码
    {
      "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

  • 请求参数: 无

  • 响应数据:

    json 复制代码
    {
      "data": {
        "studyHours": "number",     // 学习小时数
        "questionCount": "number",  // 练习题目数
        "correctCount": "number"    // 答对题目数
      }
    }
  • 使用场景: 获取用户学习统计数据,用于展示学习成果

4. 错误处理

所有API接口遵循HTTP状态码规范:

  • 200: 请求成功
  • 400: 请求参数错误
  • 401: 未授权访问
  • 404: 资源不存在
  • 500: 服务器内部错误

当状态码不为200时,响应体中会包含错误信息:

json 复制代码
{
  "code": "number",    // 错误码
  "message": "string"  // 错误描述
}

5. 使用示例

5.1 开始考试

typescript 复制代码
const examRecord = await this.examStart(paperId);

5.2 获取题目列表

typescript 复制代码
const examPaperResponse = await ExamUtils.fetchQuestionList(recordId, paperId);

5.3 提交答案

typescript 复制代码
const result = await ExamUtils.answer(
  recordId, 
  paperId, 
  questionId, 
  userAnswer, 
  isCorrect ? 1 : 0, 
  30
);

5.4 结束考试

typescript 复制代码
const examRecord = await ExamUtils.examFinish(paperId, recordId);

6. 注意事项

  1. 所有API请求都需要携带有效的Authorization头
  2. 接口地址会根据当前环境自动拼接完整URL
  3. 响应数据格式可能根据后端服务更新而变化
  4. 开发过程中建议使用开发环境以便调试
  5. 生产环境应确保网络连接稳定,做好错误处理

以上是软考真经微信小程序项目的完整API接口文档。开发人员可以基于此文档进行接口调用和功能开发。


项目源码地址:https://gitee.com/alioo/ruankao

想要体验小程序的朋友可以通过以下二维码进行访问:

小程序界面效果展示(页面配色、布局全靠AI帮忙):

相关推荐
克里斯蒂亚诺更新13 小时前
微信小程序的页面生命周期 以及onShow的应用场景
微信小程序·小程序
江城开朗的豌豆15 小时前
小程序避坑指南:这些兼容性问题你遇到了几个?
前端·javascript·微信小程序
江城开朗的豌豆15 小时前
玩转小程序页面跳转:我的路由实战笔记
前端·javascript·微信小程序
00后程序员张16 小时前
苹果软件混淆的工程逻辑,从符号空间到资源扰动的体系化实现
android·ios·小程序·https·uni-app·iphone·webview
zluz_1 天前
微信小程序,组件中使用全局样式
微信小程序·小程序
明月(Alioo)1 天前
用AI帮忙,开发刷题小程序:微信小程序中实现Markdown图片解析与渲染功能详解
微信小程序·小程序·aigc
aiguangyuan1 天前
微信小程序中的双线程模型及数据传输优化
微信小程序·前端开发
说私域1 天前
技术指数变革下的组织适应性研究:基于定制开发开源AI智能名片S2B2C商城小程序的实践观察
人工智能·小程序·开源
笨笨狗吞噬者1 天前
【uniapp】小程序体积优化,JSON文件压缩
前端·微信小程序·uni-app