Panduan Persekitaran Ujian API dan Kotak Pasir

Kuasai ujian dengan persekitaran kotak pasir yang komprehensif Smart Money API. Bangun tanpa risiko menggunakan data ujian realistik, respons deterministik, dan had kadar yang murah hati untuk eksperimen.

Diterbitkan pada 21 Mac 2026 14 minit baca Pembangunan

Gambaran Keseluruhan Persekitaran Kotak Pasir

Smart Money API menyediakan persekitaran kotak pasir yang lengkap untuk pembangunan dan ujian. Kotak pasir ini mencerminkan struktur API pengeluaran tetapi menggunakan data sintetik dan had kadar yang murah hati, membolehkan anda membangun dengan yakin sebelum ke pengeluaran.

Ciri utama:

  • Sama dengan Pengeluaran — Titik akhir yang sama, pengesahan, format respons
  • Hanya Data Ujian — Tidak pernah menjejaskan akaun sebenar atau pasaran langsung
  • Had Kadar Tinggi — 10,000 permintaan/jam berbanding 1,000 dalam pengeluaran
  • Respons Deterministik — Alat ujian yang konsisten untuk ujian yang boleh dihasilkan semula
  • Akaun Terpencil — Berasingan dari data pengguna pengeluaran

Amalan Terbaik: Semua pembangunan, ujian, dan pentas harus menggunakan persekitaran kotak pasir. Gunakan pengeluaran hanya selepas pengesahan kotak pasir yang teliti.

Ciri-ciri Kotak Pasir

Data Ujian Realistik

Kotak pasir mengandungi data pasaran kripto realistik yang tidak berubah secara rawak:

  • Data pasaran sejarah (6 bulan OHLCV realistik)
  • Alamat dompet ikan paus tetap dengan corak pergerakan yang konsisten
  • Kadar pembiayaan stabil yang ditetapkan semula setiap jam
  • Corak pelupusan deterministik untuk menguji kes tepi

Ciri Khusus Ujian

Ciri Ujian
// Simbol ujian deterministik
// Semua simbol ujian bermula dengan TEST_
TEST_BTC, TEST_ETH, TEST_SOL, dsb.
// Stempel masa ajaib untuk mensimulasikan senario
GET /v1/derivatives/funding-heatmap?
timestamp=1234567890000 // Mengembalikan data ujian tetap
// Paksa ralat untuk ujian pengendalian pengecualian
X-Test-Error: rate_limit_exceeded
X-Test-Error: service_unavailable

Alatan Ujian

  • Tetapkan Semula Data — Tetapkan semula semua akaun ujian ke keadaan awal
  • Kawalan Masa — Simulasikan keadaan pasaran yang berbeza
  • Suntikan Ralat — Paksa respons ralat tertentu
  • Ujian Had Kadar — Pencetus respons had kadar
Dapatkan kunci API anda dalam 30 saat

Sedia untuk membina? Dapatkan kunci API percuma (50 panggilan/hari, tiada kad) dan mula menarik data ikan paus langsung, pembiayaan dan data on-chain.

Dapatkan kunci API anda →

Kredensial Ujian

Mendapatkan Kunci API Ujian

Buat akaun ujian melalui papan pemuka untuk menjana kunci API kotak pasir:

Format Kunci Ujian
// Kunci ujian mempunyai awalan yang berbeza
sk_test_1234567890abcdef // Kunci API ujian
sk_live_1234567890abcdef // Kunci API pengeluaran
// Laluan automatik ke persekitaran yang sesuai
GET https://api.smartmoneyapi.com/v1/whales
-H "Authorization: Bearer sk_test_xxx"
# Laluan ke kotak pasir secara automatik

Kunci Ujian Pra-Konfigurasi

Gunakan kunci ujian awam ini untuk eksperimen pantas (dengan had kadar):

Kunci Kebenaran Had
sk_test_demo Baca semua 100/jam
sk_test_trader Baca + amaran 500/jam
sk_test_pro Akses penuh 5000/jam

Jangan sekali-kali menggunakan kunci ujian dalam pengeluaran. Mereka mempunyai fungsi dan had kadar yang terhad.

Data dan Alat Ujian

Simbol Ujian Tersedia

Kotak pasir termasuk pasangan dagangan ujian berikut dengan data sejarah yang realistik:

Simbol Ujian
// Pasangan kripto
TEST_BTCUSDT, TEST_ETHUSDT, TEST_BNBUSDT
TEST_SOLSDT, TEST_ARBUSDT, TEST_OPUSDT
// Query simbol ujian
GET /v1/symbols?test_only=true

Dompet Ikan Paus Ujian

Dompet ujian pra-konfigurasi dengan tingkah laku deterministik:

  • Dompet Pengumpul — Sentiasa membeli, baik untuk ujian menaik
  • Dompet Pengedar — Sentiasa menjual, baik untuk ujian menurun
  • Dompet Pengayun — Berganti beli/jual, baik untuk ujian terikat julat
  • Dompet Turun Naik — Transaksi besar rawak untuk ujian tekanan

Menetapkan Semula Data Ujian

Tetapkan Semula Data Ujian
// Tetapkan semula semua akaun ujian ke keadaan awal
POST /v1/test/reset
-H "Authorization: Bearer sk_test_xxx"
// Tetapkan semula sumber tertentu
POST /v1/test/reset?resource=whales
// Respons
{
"status": "reset_complete",
"timestamp": 1709980800000
}

Sandbox Endpoints

Base URLs

Environment URLs
// Sandbox (test mode)
https://api-test.smartmoney.io/v1
// Or use query parameter
https://api.smartmoneyapi.com/v1?environment=sandbox
// Production (live mode)
https://api.smartmoneyapi.com/v1

Sandbox-Only Endpoints

Endpoint Purpose
POST /test/reset Set semula data ujian ke keadaan awal
POST /test/inject-error Suntik ralat khusus untuk pengujian
POST /test/simulate-time Simulasi keadaan pasaran yang berbeza
GET /test/status Periksa kesihatan persekitaran sandbox

Response Mocking

Injecting Test Errors

Paksa respons ralat khusus untuk pengujian pengendalian pengecualian:

Error Injection
// Test rate limit handling
GET /v1/whales?X-Test-Error=rate_limit_exceeded
// Test service unavailability
GET /v1/whales?X-Test-Error=service_unavailable
// Test authentication failure
GET /v1/whales?X-Test-Error=invalid_key
// Test timeout
GET /v1/whales?X-Test-Error=timeout

Available Test Errors

Error Code HTTP Status Use Case
invalid_key 401 Pengendalian ralat pengesahan
rate_limit_exceeded 429 Pengujian logik backoff
not_found 404 Pengendalian sumber yang hilang
service_unavailable 503 Pengujian logik cuba semula
timeout 504 Pengendalian masa tamat

Sandbox Rate Limits

Rate Limit Tiers

Environment Limit/Hour Burst Purpose
Sandbox 10,000 500/min Pembangunan & pengujian
Production Free 1,000 50/min Projek hobi
Production Trader 10,000 400/min Perdagangan profesional
Production Pro 50,000 1000/min Sistem frekuensi tinggi

Testing Rate Limit Handling

Rate Limit Testing
// Trigger rate limit response in sandbox
curl -H "X-Test-Error: rate_limit_exceeded" \
https://api-test.smartmoney.io/v1/whales
// Response includes retry headers
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1709984400
Retry-After: 3600

Testing Strategies

Unit Testing with Fixtures

Python Unit Test
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())

Integration Testing

Uji aliran kerja penuh dalam sandbox sebelum penyebaran pengeluaran:

  1. Sebarkan ke staging dengan kredensial sandbox
  2. Jalankan suite ujian penuh terhadap sandbox
  3. Uji pengendalian ralat dengan suntikan ralat
  4. Sahkan tingkah laku had kadar
  5. Periksa masa respons dan kependaman
  6. Hanya kemudian naik taraf ke pengeluaran

Load Testing

Load Test with Apache Bench
// Sandbox allows high load testing
ab -n 5000 -c 100 \
-H "Authorization: Bearer sk_test_pro" \
https://api-test.smartmoney.io/v1/whales/TEST_BTC

CI/CD Integration

GitHub Actions Example

.github/workflows/test.yml
name: API Tests
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/

Environment Configuration

Gunakan pembolehubah persekitaran untuk bertukar antara sandbox dan produksi:

Persediaan Persekitaran
// .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

Penyelesaian Masalah

Isu Biasa

Kunci Ujian Tidak Berfungsi

Masalah: Mendapat 401 Tidak Dibenarkan dengan kunci ujian

Penyelesaian:

  • Pastikan kunci bermula dengan sk_test_ (bukan sk_live_)
  • Periksa format header Pengecualian: "Bearer sk_test_xxx"
  • Pastikan menggunakan titik akhir ujian: api-test.smartmoney.io
  • Kunci ujian mungkin telah melebihi had kadar

Data Tidak Ditetapkan Semula

Masalah: Data ujian tidak ditetapkan semula selepas POST /test/reset

Penyelesaian:

  • Penetapan semula mungkin mengambil masa sehingga 30 saat untuk disebarkan
  • Periksa status sandbox dengan GET /test/status
  • Pastikan menggunakan kunci API ujian yang betul
  • Hubungi sokongan jika berterusan

Had Kadar dalam Sandbox

Masalah: Mencapai had kadar dalam sandbox (tidak sepatutnya berlaku)

Penyelesaian:

  • Pastikan menggunakan kunci sk_test_pro (10,000/jam)
  • Periksa header X-RateLimit-Remaining
  • Tunggu sempadan jam atau gunakan akaun ujian yang berbeza
  • Hubungi sokongan untuk peningkatan had kadar sementara

Mula Menguji Hari Ini

Gunakan persekitaran sandbox kami yang komprehensif untuk pembangunan yang selamat dan terpencil. Data ujian deterministik, had kadar tinggi, dan kesamaan ciri lengkap dengan produksi.

Dapatkan Kredensial Ujian
Semua rancangan termasuk akses sandbox. Tiada kos tambahan.

Sumber Berkaitan

Mulai percuma — 50 panggilan/hari, tiada kad

Dapatkan aliran ikan paus langsung, pembiayaan, minat terbuka dan data on-chain merentasi 3 pertukaran dari satu API. Tahap percuma, tiada kad kredit, naik taraf bila-bila masa.

Mulai percuma →
Cuba konsol API langsung → (tiada akaun diperlukan)