欢迎使用我们的API接口文档。这里提供了访问和操作游戏平台数据的完整接口说明,帮助开发者快速集成和使用我们的平台功能。
基于优化的后端架构,提供毫秒级响应速度
采用多重安全机制保护数据安全
支持实时数据交互和状态更新
在开始使用API之前,请确保您已完成以下准备工作:
所有API端点均可公开访问,无需特殊权限。对于需要用户身份验证的端点(如提交分数),用户需要登录。
确保您的开发环境支持HTTP请求发送和JSON数据处理。推荐使用以下工具:
所有API请求都需要遵循以下基本格式:
游戏数据API提供了游戏分数记录、排行榜和登录验证功能,是游戏平台的核心功能之一。
端点: POST /api/gamedata.php
说明: 提交玩家的游戏分数和游戏时长
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
| action | string | 是 | 操作类型,固定值: "submit_score" |
| game_id | integer | 是 | 游戏ID |
| score | integer | 是 | 玩家得分 |
| play_time | integer | 否 | 游戏时长(秒) |
{
"action": "submit_score",
"game_id": 1,
"score": 1500,
"play_time": 120
}
{
"success": true,
"message": "分数提交成功"
}
端点: POST /api/gamedata.php
说明: 获取指定游戏的排行榜数据
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
| action | string | 是 | 操作类型,固定值: "get_leaderboard" |
| game_id | integer | 是 | 游戏ID |
| limit | integer | 否 | 返回记录数,默认10,最大100 |
{
"action": "get_leaderboard",
"game_id": 1,
"limit": 10
}
{
"success": true,
"data": [
{
"player_name": "玩家1",
"score": 2100,
"play_time": 180,
"created_at": "2023-01-01 12:00:00"
},
{
"player_name": "玩家2",
"score": 1500,
"play_time": 120,
"created_at": "2023-01-01 12:05:00"
}
]
}
端点: POST /api/gamedata.php
说明: 验证当前用户的登录状态
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
| action | string | 是 | 操作类型,固定值: "verify_login" |
{
"action": "verify_login"
}
{
"success": true,
"logged_in": true,
"user": {
"id": 1,
"username": "玩家名称"
}
}
{
"success": true,
"logged_in": false
}
端点: POST /api/gamedata.php
说明: 获取指定玩家在特定游戏中的统计数据
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
| action | string | 是 | 操作类型,固定值: "get_player_stats" |
| game_id | integer | 是 | 游戏ID |
| player_name | string | 否 | 玩家名称,如果用户已登录则可省略 |
{
"action": "get_player_stats",
"game_id": 1
}
{
"success": true,
"data": {
"total_plays": 5,
"best_score": 2100,
"average_score": 1560,
"total_play_time": 600,
"first_play": "2023-01-01 10:00:00",
"last_play": "2023-01-01 15:00:00"
}
}
游戏列表API用于获取平台上的所有可用游戏信息。
端点: GET /api/games.php
说明: 获取所有可用游戏的列表
该接口为GET请求,无需参数。
{
"success": true,
"data": [
{
"id": 1,
"folder_name": "game1",
"display_name": "记忆卡片游戏",
"description": "测试你的记忆力...",
"cover_image": "https://example.com/images/game1.jpg",
"category_id": 1,
"require_login": 1,
"sort_order": 0,
"is_active": 1,
"created_at": "2023-01-01 10:00:00",
"updated_at": "2023-01-01 10:00:00"
}
]
}
这是一个GET请求,无需参数。
统计数据API用于记录用户交互和平台使用情况。
端点: POST /api/stats.php
说明: 记录用户交互统计数据
| 参数名 | 类型 | 必需 | 说明 |
|---|---|---|---|
| action | string | 是 | 操作类型,固定值: "track_button" |
| button_id | string | 是 | 按钮ID |
| button_name | string | 是 | 按钮名称 |
| page_url | string | 是 | 页面URL |
{
"action": "track_button",
"button_id": "button123",
"button_name": "开始游戏按钮",
"page_url": "http://example.com"
}
{
"success": true,
"message": "按钮点击已记录"
}
我们为每个API端点提供了内置测试工具,您可以直接在页面上测试API功能:
在每个API端点下方的测试面板中,您可以修改请求参数以满足测试需求。参数格式为JSON。
点击"发送请求"按钮,系统将向对应的API端点发送请求。
API响应将显示在请求按钮下方的响应区域中。响应内容会自动格式化以便阅读。
使用测试工具时,请确保输入有效的JSON格式。如果出现错误,系统会显示相应的错误信息。
始终检查API响应的成功状态,即使在测试时看起来一切正常:
// JavaScript示例
fetch('/api/gamedata.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(requestData)
})
.then(response => response.json())
.then(data => {
if (data.success) {
// 处理成功响应
console.log('成功:', data);
} else {
// 处理错误响应
console.error('错误:', data.message);
}
})
.catch(error => {
// 处理网络错误
console.error('网络错误:', error);
});
在提交数据前验证数据格式和范围:
// JavaScript示例
function validateScoreData(data) {
if (!data.game_id || !Number.isInteger(data.game_id)) {
throw new Error('游戏ID必须是整数');
}
if (!data.score || !Number.isInteger(data.score)) {
throw new Error('分数必须是整数');
}
if (data.play_time && !Number.isInteger(data.play_time)) {
throw new Error('游戏时长必须是整数');
}
return true;
}
合理使用limit参数,避免获取过多数据:
// 获取排行榜时限制返回记录数
const leaderboardRequest = {
action: 'get_leaderboard',
game_id: 1,
limit: 10 // 限制为10条记录
};
所有涉及用户数据的操作应验证用户身份:
// 提交分数前验证登录状态
function submitScoreIfLoggedIn(gameId, score, playTime) {
fetch('/api/gamedata.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ action: 'verify_login' })
})
.then(response => response.json())
.then(data => {
if (data.logged_in) {
// 用户已登录,可以提交分数
submitScore(gameId, score, playTime);
} else {
// 用户未登录,提示登录
alert('请先登录再提交分数');
}
});
}