API测试与沙盒环境指南

通过Smart Money API全面的沙盒环境掌握测试技巧。使用真实的测试数据、确定性响应和宽松的速率限制进行无风险开发实验。

发布于2026年3月21日 14分钟阅读 开发

沙盒环境概述

Smart Money API提供功能完备的沙盒环境用于开发和测试。沙盒镜像了生产API结构,但使用合成数据和宽松的速率限制,让您在上线前能自信开发。

主要特性:

  • 与生产环境一致 ——相同端点、认证方式、响应格式
  • 仅测试数据 ——不影响真实账户或实时市场
  • 高速率限制 ——10,000次请求/小时(生产环境为1,000次)
  • 确定性响应 ——一致的测试夹具确保可复现测试
  • 隔离账户 ——与生产用户数据分离

最佳实践: 所有开发、测试和预发布都应使用沙盒环境。仅在通过充分沙盒验证后使用生产环境。

沙盒功能

真实测试数据

沙盒包含不会随机变化的真实加密货币市场数据:

  • 历史市场数据(6个月真实OHLCV)
  • 具有固定行为模式的巨鲸钱包地址
  • 每小时重置的稳定资金费率
  • 用于测试边缘场景的确定性清算模式

测试专用功能

测试功能
// 确定性测试代币
// 所有测试代币以TEST_开头
TEST_BTC, TEST_ETH, TEST_SOL等
// 用于模拟场景的魔法时间戳
GET /v1/derivatives/funding-heatmap?
timestamp=1234567890000 // 返回固定测试数据
// 强制返回错误以测试异常处理
X-Test-Error: rate_limit_exceeded
X-Test-Error: service_unavailable

测试工具

  • 数据重置 ——将所有测试账户恢复初始状态
  • 时间控制 ——模拟不同市场条件
  • 错误注入 ——强制返回特定错误响应
  • 速率限制测试 ——触发速率限制响应
30秒获取API密钥

准备构建?立即获取免费API密钥(每日50次调用,无需绑卡),开始获取实时巨鲸、资金费率及链上数据。

获取API密钥 →

测试凭证

获取测试API密钥

通过控制台创建测试账户以生成沙盒API密钥:

测试密钥格式
// 测试密钥具有不同前缀
sk_test_1234567890abcdef // 测试API密钥
sk_live_1234567890abcdef // 生产API密钥
// 自动路由至对应环境
GET https://api.smartmoneyapi.com/v1/whales
-H "Authorization: Bearer sk_test_xxx"
# 自动路由至沙盒环境

预配置测试密钥

使用以下公开测试密钥快速体验(受速率限制):

密钥 权限 限制
sk_test_demo 只读权限 100次/小时
sk_test_trader 读取+警报 500次/小时
sk_test_pro 完全访问 5000次/小时

切勿在生产环境使用测试密钥。 它们功能有限且受速率限制。

测试数据与夹具

可用测试代币

沙盒包含以下具有真实历史数据的测试交易对:

测试代币
// 加密货币交易对
TEST_BTCUSDT, TEST_ETHUSDT, TEST_BNBUSDT
TEST_SOLSDT, TEST_ARBUSDT, TEST_OPUSDT
// 查询测试代币
GET /v1/symbols?test_only=true

测试巨鲸钱包

具有确定性行为的预配置测试钱包:

  • 积累型钱包 ——持续买入,适合看涨测试
  • 派发型钱包 ——持续卖出,适合看跌测试
  • 震荡型钱包 ——交替买卖,适合区间波动测试
  • 波动型钱包 ——随机大额交易用于压力测试

重置测试数据

重置测试数据
// 将所有测试账户恢复初始状态
POST /v1/test/reset
-H "Authorization: Bearer sk_test_xxx"
// 重置特定资源
POST /v1/test/reset?resource=whales
// 响应
{
"status": "reset_complete",
"timestamp": 1709980800000
}

沙盒端点

基础URL

环境URL
// 沙盒(测试模式)
https://api-test.smartmoney.io/v1
// 或使用查询参数
https://api.smartmoneyapi.com/v1?environment=sandbox
// 生产环境(实时模式)
https://api.smartmoneyapi.com/v1

仅沙盒端点

端点 用途
POST /test/reset 重置测试数据至初始状态
POST /test/inject-error 注入特定错误以进行测试
POST /test/simulate-time 模拟不同市场条件
GET /test/status 检查沙盒环境健康状态

响应模拟

注入测试错误

强制返回特定错误响应以测试异常处理:

错误注入
// 测试限流处理
GET /v1/whales?X-Test-Error=rate_limit_exceeded
// 测试服务不可用
GET /v1/whales?X-Test-Error=service_unavailable
// 测试认证失败
GET /v1/whales?X-Test-Error=invalid_key
// 测试超时
GET /v1/whales?X-Test-Error=timeout

可用测试错误

错误代码 HTTP状态码 使用场景
invalid_key 401 认证错误处理
rate_limit_exceeded 429 退避逻辑测试
not_found 404 缺失资源处理
service_unavailable 503 重试逻辑测试
timeout 504 超时处理

沙盒速率限制

速率限制层级

环境 限制/小时 突发流量 用途
沙盒 10,000 500/分钟 开发与测试
生产环境免费版 1,000 50/分钟 业余项目
生产环境交易版 10,000 400/分钟 专业交易
生产环境专业版 50,000 1000/分钟 高频系统

测试限流处理

速率限制测试
// 在沙盒中触发限流响应
curl -H "X-Test-Error: rate_limit_exceeded" \
https://api-test.smartmoney.io/v1/whales
// 响应包含重试头部信息
HTTP/1.1 429 请求过多
X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1709984400
Retry-After: 3600

测试策略

使用固定数据进行单元测试

Python单元测试
import unittest
import requests
class TestSmartMoneyAPI(unittest.TestCase):
def setUp(self):
self.api_key = 'sk_test_demo'
self.base_url = 'https://api-test.smartmoney.io/v1'
def test_whale_tracking(self):
response = requests.get(
f'{self.base_url}/whales/TEST_BTC',
headers={'Authorization': f'Bearer {self.api_key}'}
)
self.assertEqual(response.status_code, 200)
self.assertIn('whales', response.json())

集成测试

在沙盒中测试完整工作流后再部署至生产环境:

  1. 使用沙盒凭证部署至预发布环境
  2. 针对沙盒运行完整测试套件
  3. 通过错误注入测试异常处理
  4. 验证限流行为
  5. 检查响应时间和延迟
  6. 确认无误后再发布至生产环境

负载测试

使用Apache Bench进行负载测试
// 沙盒允许高负载测试
ab -n 5000 -c 100 \
-H "Authorization: Bearer sk_test_pro" \
https://api-test.smartmoney.io/v1/whales/TEST_BTC

CI/CD集成

GitHub Actions示例

.github/workflows/test.yml
name: API测试
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: pip install requests pytest
- env:
SMARTMONEY_API_KEY: ${{ secrets.TEST_API_KEY }}
SMARTMONEY_ENV: sandbox
run: pytest tests/

环境配置

使用环境变量在沙盒和生产环境之间切换:

环境设置
// .env.sandbox
SMARTMONEY_API_KEY=sk_test_demo
SMARTMONEY_API_URL=https://api-test.smartmoney.io/v1
SMARTMONEY_ENV=sandbox
// .env.production
SMARTMONEY_API_KEY=sk_live_xxxx
SMARTMONEY_API_URL=https://api.smartmoneyapi.com/v1
SMARTMONEY_ENV=production

故障排除

常见问题

测试密钥无效

问题: 使用测试密钥时收到401未授权错误

解决方案:

  • 确认密钥以sk_test_开头(而非sk_live_)
  • 检查Authorization头格式:"Bearer sk_test_xxx"
  • 确保使用测试端点:api-test.smartmoney.io
  • 测试密钥可能已达到速率限制

数据未重置

问题: POST /test/reset后测试数据未重置

解决方案:

  • 重置可能需要长达30秒才能生效
  • 使用GET /test/status检查沙盒状态
  • 确认使用正确的测试API密钥
  • 如果问题持续,请联系支持

沙盒中的速率限制

问题: 在沙盒中遇到速率限制(不应发生)

解决方案:

  • 确认使用sk_test_pro密钥(10,000次/小时)
  • 检查X-RateLimit-Remaining头
  • 等待小时边界或使用不同的测试账户
  • 联系支持以临时提高速率限制

立即开始测试

使用我们全面的沙盒环境进行安全、隔离的开发。确定性测试数据、高速率限制以及与生产环境的完整功能一致性。

获取测试凭证
所有计划均包含沙盒访问权限。无需额外费用。

相关资源

免费开始 — 每天50次调用,无需信用卡

从一个API获取实时鲸鱼流动、资金、未平仓合约和链上数据,涵盖3个交易所。免费层级,无需信用卡,随时升级。

免费开始 →
尝试实时API控制台 → (无需账户)