API 文档

欢迎使用我们的API接口文档。这里提供了访问和操作游戏平台数据的完整接口说明,帮助开发者快速集成和使用我们的平台功能。

高性能

基于优化的后端架构,提供毫秒级响应速度

安全性

采用多重安全机制保护数据安全

实时性

支持实时数据交互和状态更新

快速开始

准备工作

在开始使用API之前,请确保您已完成以下准备工作:

1
获取API访问权限

所有API端点均可公开访问,无需特殊权限。对于需要用户身份验证的端点(如提交分数),用户需要登录。

2
准备开发环境

确保您的开发环境支持HTTP请求发送和JSON数据处理。推荐使用以下工具:

  • Postman - API测试工具
  • cURL - 命令行工具
  • JavaScript Fetch API - 前端开发
  • Python requests - Python后端开发
3
基础请求格式

所有API请求都需要遵循以下基本格式:

// 请求头 Content-Type: application/json // 基本URL结构 https://yourdomain.com/api/{endpoint}.php // 示例请求 POST /api/gamedata.php { "action": "verify_login" }

游戏数据API

游戏数据API提供了游戏分数记录、排行榜和登录验证功能,是游戏平台的核心功能之一。

1. 提交游戏分数

端点: 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": "分数提交成功"
}
测试API
2. 获取排行榜

端点: 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"
    }
  ]
}
测试API
3. 验证登录状态

端点: 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
}
测试API
4. 获取玩家统计数据

端点: 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

游戏列表API

游戏列表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"
    }
  ]
}
测试API

这是一个GET请求,无需参数。

统计数据API

统计数据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端点提供了内置测试工具,您可以直接在页面上测试API功能:

1
修改请求参数

在每个API端点下方的测试面板中,您可以修改请求参数以满足测试需求。参数格式为JSON。

2
发送请求

点击"发送请求"按钮,系统将向对应的API端点发送请求。

3
查看响应

API响应将显示在请求按钮下方的响应区域中。响应内容会自动格式化以便阅读。

提示

使用测试工具时,请确保输入有效的JSON格式。如果出现错误,系统会显示相应的错误信息。

最佳实践

API使用建议
1
错误处理

始终检查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);
});
2
数据验证

在提交数据前验证数据格式和范围:

// 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;
}
3
性能优化

合理使用limit参数,避免获取过多数据:

// 获取排行榜时限制返回记录数
const leaderboardRequest = {
  action: 'get_leaderboard',
  game_id: 1,
  limit: 10  // 限制为10条记录
};
4
安全性

所有涉及用户数据的操作应验证用户身份:

// 提交分数前验证登录状态
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('请先登录再提交分数');
    }
  });
}