📖 API接口文档

奇迹农场数据管理服务器提供RESTful API接口,支持多种数据格式和认证方式。

ℹ️ 基础信息
  • 服务器地址: http://118.31.22.178:5000
  • API版本: v1
  • 支持格式: JSON, Form Data, Raw Data
  • 字符编码: UTF-8
  • CORS支持: 已启用
📥 数据获取接口
接口信息
URL:/api/data
方法:GET
认证:需要访问密钥
内容类型:application/json
返回数据字段
  • 🌤️ weather (天气)
  • 🌦️ events (天气事件)
  • 🌱 seed_shop (种子商店)
  • 🥚 pet_egg_shop (宠物蛋商店)
  • 🔧 tool_shop (工具商店)
⚠️ 访问限制
  • 频率限制: 连续10次请求间隔小于1秒将自动停用密钥
  • IP限制: 1分钟内不同IP使用同一密钥将自动停用
  • 建议间隔: 每次请求间隔至少2秒
  • 密钥格式: 7位大写字母和数字组合
JavaScript 获取示例
推荐方式: URL参数
// 获取游戏数据
async function getData() {
    var accessKey = 'ABC123D';  // 替换为你的访问密钥
    
    try {
        var response = await fetch('/api/data?access_key=' + accessKey);
        var result = await response.json();
        
        if (result.success) {
            // 获取成功,处理数据
            var weather = result.weather;           // 天气
            var events = result.events;             // 天气事件
            var seedShop = result.seed_shop;        // 种子商店
            var petEggShop = result.pet_egg_shop;   // 宠物蛋商店
            var toolShop = result.tool_shop;        // 工具商店
            
            console.log('天气:', weather);
            console.log('事件:', events);
        } else {
            // 获取失败
            console.error('错误:', result.message);
            
            // 常见错误处理
            if (result.message.indexOf('停用') !== -1) {
                alert('密钥已被停用,请联系管理员');
            } else if (result.message.indexOf('过期') !== -1) {
                alert('密钥已过期,请申请新密钥');
            }
        }
    } catch (error) {
        console.error('网络错误:', error);
    }
}
完整响应示例
{
  "success": true,
  "weather": "流星雨",
  "events": "低概率获得流星突变 4分56秒后结束",
  "seed_shop": "皇后菠萝",
  "pet_egg_shop": "红色宠物蛋",
  "tool_shop": "高级铲子"
}
错误响应示例
密钥不存在
{"success": false, "message": "密钥不存在"}
密钥已停用
{"success": false, "message": "密钥已停用"}
频率异常
{"success": false, "message": "访问频率异常,密钥已自动停用"}
🚀 实时数据演示
当前服务器数据
🔑
请输入有效的访问密钥(7位大写字母和数字)
🌤️ 天气信息
输入密钥后点击"获取数据"
🌦️ 天气事件
输入密钥后点击"获取数据"
🌱 种子商店
输入密钥后点击"获取数据"
🥚 宠物蛋商店
输入密钥后点击"获取数据"
🔧 工具商店
输入密钥后点击"获取数据"
⚠️ 错误代码说明
状态码 错误类型 说明 JavaScript 处理
200 成功 请求处理成功 if (result.success) { ... }
400 请求错误 请求参数有误或格式错误 console.error(result.message)
401 认证失败 密钥无效或已过期 alert('请检查密钥')
500 服务器错误 服务器内部错误 console.error('服务器错误')
错误处理示例
// 完整的错误处理示例
async function handleApiRequest() {
    try {
        const response = await fetch('/api/upload', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ upload_key: 'UPLOAD01', weather: '晴天' })
        });
        
        // 检查HTTP状态码
        if (!response.ok) {
            throw new Error(`HTTP ${response.status}: ${response.statusText}`);
        }
        
        const result = await response.json();
        
        // 检查业务逻辑结果
        if (result.success) {
            console.log('✅ 操作成功:', result.message);
            return result;
        } else {
            console.error('❌ 操作失败:', result.message);
            
            // 根据错误类型进行不同处理
            if (result.message.includes('密钥')) {
                alert('请检查上传密钥是否正确');
            } else if (result.message.includes('格式')) {
                alert('请检查数据格式是否正确');
            } else {
                alert('操作失败: ' + result.message);
            }
            
            return null;
        }
    } catch (error) {
        console.error('🔥 网络错误:', error);
        
        if (error.name === 'TypeError') {
            alert('网络连接失败,请检查服务器是否正常运行');
        } else {
            alert('请求失败: ' + error.message);
        }
        
        return null;
    }
}
💡 使用说明
📋 基本信息
  • 密钥格式:7位大写字母和数字
  • 密钥有时效性,过期需重新申请
  • 空字段返回空字符串
  • 支持CORS跨域请求
⚠️ 重要限制
  • 请求间隔:至少2秒
  • 频率限制:10次/9秒内触发封禁
  • IP限制:1分钟内换IP触发封禁
  • 一人一密钥:禁止共享密钥
推荐代码(带频率控制)
// 带频率控制的数据获取
var lastRequestTime = 0;
var minInterval = 2000; // 最小间隔2秒

async function getGameData(accessKey) {
    // 检查请求间隔
    var now = Date.now();
    if (now - lastRequestTime < minInterval) {
        console.warn('请求过于频繁,请稍后再试');
        return null;
    }
    lastRequestTime = now;
    
    try {
        var response = await fetch('/api/data?access_key=' + accessKey);
        var result = await response.json();
        
        if (result.success) {
            return result.data;
        } else {
            console.error('获取失败:', result.message);
            return null;
        }
    } catch (error) {
        console.error('网络错误:', error);
        return null;
    }
}

// 使用示例
getGameData('ABC123D').then(function(data) {
    if (data) {
        console.log('天气:', data.weather);
        console.log('事件:', data.events);
    }
});
🚫 禁止行为
  • 禁止将密钥分享给他人使用
  • 禁止使用脚本频繁请求(刷接口)
  • 禁止在多个设备同时使用同一密钥
  • 违规将导致密钥自动停用
💡 密钥被停用怎么办?

如果密钥被自动停用,请联系管理员在后台重新启用,或申请新密钥。

📞 技术支持

如果在使用API过程中遇到问题,请使用以下资源:

🏠 返回主页
主页
🎛️ 管理后台
管理后台

服务器状态: 检测中...

当前时间: --