API参考
语法:
index.php?ajax=1[&nickname=[<昵称>][&act=[get_question|get_new_question|clear|game|out]][&result=<数字>]
Get/Post ajax
固定值为 1
Get/Post nickname
昵称:
用于标识不同用户的昵称。在请求中指定nickname可以确保服务器能够区分来自不同用户的请求,尤其是在处理如答题记录、比赛状态等与用户特定信息相关的操作时。如果未指定nickname,则系统采用默认用户身份处理请求。
Get act
操作类型:
get_question
:获取当前问题(复述一遍当前状态)
get_new_question
:获取新的问题(换一道题,并复述当前状态)
clear
:清除答题记录
game
:开始计时比赛
out
:停止计时比赛
Post result
提交对某个问题的答案。
响应格式
{
"question": "1+1", // 当前的问题 - 在每一次用户请求新问题或提交答案后,这个字段会更新为新的待答问题。因此,无论用户处于何种答题状态(包括刚刚进入答题页面、已经提交了一个答案等待反馈或正在进行计时比赛),question字段始终指向当前用户应当回答的问题,确保用户界面的即时性和准确性。
"question_last_correctness": false, // 上一个问题的答案是否正确,true为正确,false为错误;如果尚未开始答题,则必定为false - 这个字段的值仅在用户提交答案并收到反馈后更新。它反映的是上一次回答的问题的正确性,而不是当前用户正在回答或即将回答的问题的正确性。
"game_time_left_seconds": 0, // 计时比赛中剩余的时间(秒)。在非计时模式下,此值为0,且当此值为0时,必须当作游戏模式为"freeplay"
"game_mode": "freeplay", // 当前的游戏模式,"freeplay"表示不计时(自由答题),“tinming” 表示计时。
"stat_total_count": 0, // 总共回答的问题数量
"stat_correct_count": 0, // 回答正确的问题数量
"stat_correct_rate": 0 // 正确率,已经乘以100,只需加上百分号即可展示
}
注意事项
如果要提供nickname参数的话,就要保证在之后的请求中持续提供,如果不提供,系统就会采用默认用户,继而导致返回的数据不正确。
示范
获取当前问题
Get 请求地址
index.php?ajax=1&nickname=user123&act=get_question
响应
{
"question": "3+3",
"question_last_correctness": false,
"game_time_left_seconds": 0,
"game_mode": "freeplay",
"stat_total_count": 0,
"stat_correct_count": 0,
"stat_correct_rate": 0
}
提交答案
Post 请求地址
index.php?ajax=1&nickname=user123&result=6
响应
{
"question": "4+4",
"question_last_correctness": true,
"game_time_left_seconds": 0,
"game_mode": "freeplay",
"stat_total_count": 1,
"stat_correct_count": 1,
"stat_correct_rate": 100
}