用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帮忙):

相关推荐
是大刚啊9 小时前
微信小程序原生车牌输入器
微信小程序·小程序·tdesign·车牌号·车牌输入
韩立学长13 小时前
【开题答辩实录分享】以《宠物领养微信小程序》为例进行答辩实录分享
微信小程序·宠物
玖月晴空14 小时前
Uniapp 速查文档
前端·微信小程序·uni-app
2501_9159184115 小时前
App 上架苹果商店全流程详解 从开发者账号申请到开心上架(Appuploader)跨平台免 Mac 上传实战指南
macos·ios·小程序·uni-app·objective-c·cocoa·iphone
说私域15 小时前
定制开发开源AI智能名片S2B2C商城小程序中的羊群效应应用研究
人工智能·小程序
一匹电信狗16 小时前
【C++】红黑树详解(2w字详解)
服务器·c++·算法·leetcode·小程序·stl·visual studio
CsharpDev-奶豆哥16 小时前
微信小程序通过主键ID修改json数据的技术分享
微信小程序·小程序·json
汤姆yu16 小时前
基于微信小程序的防诈骗管理系统
微信小程序·小程序·防诈骗管理
2501_9160074717 小时前
从零开始学习iOS App开发:Xcode、Swift和发布到App Store完整教程
android·学习·ios·小程序·uni-app·iphone·xcode
2501_9160088918 小时前
前端工具全景实战指南,从开发到调试的效率闭环
android·前端·小程序·https·uni-app·iphone·webview