Dokumentasi API
Panduan Penyimpanan Respons dan Integrasi CDN
Optimumkan prestasi Smart Money API dengan strategi penyimpanan cache yang pintar. Pelajari header cache HTTP, pengesahan ETag, integrasi CDN, dan corak penyimpanan cache pihak pelanggan untuk mengurangkan latensi dan kos lebar jalur.
Diterbitkan pada 21 Mac 2026
•
16 minit baca
•
Prestasi
Gambaran Keseluruhan Penyimpanan Cache
Endpoint Smart Money API menyediakan data pasaran kripto yang berubah pada frekuensi berbeza. Sesetengah data (alamat paus, kadar pembiayaan) dikemas kini setiap beberapa saat, manakala data lain (analisis sejarah, kandungan pendidikan) kekal statik selama berjam-jam. Penyimpanan cache pintar meningkatkan prestasi dan mengurangkan kos dengan ketara.
Smart Money API melaksanakan strategi penyimpanan cache tiga peringkat:
- Cache Pinggir CDN — Penghantaran kandungan global dengan pembatalan cache automatik
- Cache Pelayar HTTP — Penyimpanan cache pihak pelanggan menggunakan header HTTP standard
- Cache Aplikasi — Penyimpanan cache dalam memori untuk set data yang sering diakses
Pandangan Prestasi: Respons yang disimpan cache berfungsi 50-100x lebih pantas daripada permintaan API baharu dan menjimatkan lebar jalur dengan ketara. Integrasi yang disimpan cache dengan betul boleh mengurangkan pemindahan data sebanyak 70-85%.
Setiap respons Smart Money API termasuk arahan cache yang memberitahu pelanggan dan CDN berapa lama data kekal sah. Memahami arahan ini dan melaksanakannya dengan betul adalah penting untuk prestasi optimum.
Asas Penyimpanan Cache
Penyimpanan cache HTTP beroperasi berdasarkan header respons yang menunjukkan sama ada kandungan boleh disimpan cache dan untuk berapa lama.
Header Cache-Control
Mekanisme utama untuk mengawal tingkah laku cache. Setiap respons Smart Money API termasuk header Cache-Control yang menentukan:
- max-age — Tempoh dalam saat respons kekal sah
- public/private — Sama ada cache perantaraan boleh menyimpannya
- must-revalidate — Sama ada untuk menyemak kesegaran sebelum menghidangkan
- no-store — Jangan simpan data sensitif
Contoh Header Cache
Endpoint yang berbeza mempunyai keperluan cache yang berbeza:
// Data alamat paus (dikemas kini setiap 5 minit)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Kadar pembiayaan masa nyata (dikemas kini setiap saat)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Data sejarah (tidak berubah)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"
Tempoh Cache mengikut Jenis Endpoint
| Jenis Data |
Tempoh Cache |
Kegunaan |
| Pembiayaan Masa Nyata |
1-5 saat |
Perdagangan langsung, saiz posisi |
| Pergerakan Paus |
5 minit |
Pengesahan isyarat, amaran |
| OHLCV Harian |
1 jam |
Analisis teknikal, carta |
| Analisis Sejarah |
24 jam |
Ujian balik, penyelidikan |
| Kandungan Statik |
7 hari |
Dokumen API, panduan, konfigurasi |
Dapatkan kunci API anda dalam 30 saat
Sedia untuk membina? Dapatkan kunci API percuma (100 panggilan/hari, tiada kad) dan mula menarik data paus, pembiayaan dan on-chain langsung.
Dapatkan kunci API anda →
ETag dan Permintaan Bersyarat
ETag (Tag Entiti) menyediakan cara yang cekap untuk mengesahkan kandungan cache tanpa memuat turun badan respons penuh.
Bagaimana ETag Berfungsi
- Permintaan Awal — Pelanggan meminta data, pelayan bertindak balas dengan ETag
- Penyimpanan Cache — Pelanggan menyimpan cache respons dengan ETag
- Permintaan Berikutnya — Pelanggan menghantar header If-None-Match dengan ETag yang di-cache
- Pengesahan — Jika data tidak berubah, pelayan mengembalikan 304 Not Modified
- Lebar Jalur Dijimatkan — Tiada badan respons dihantar, penjimatan lebar jalur yang besar
Pelaksanaan ETag
// Permintaan pertama
GET /v1/whales/btc HTTP/1.1
// Respons termasuk ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...response body...}
// Selepas cache tamat, hantar If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Jika tidak berubah, pelayan membalas 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Tiada badan dihantar! Lebar jalur dijimatkan
Kekuatan ETag
ETag boleh menjadi kuat atau lemah:
| Jenis |
Format |
Kegunaan |
| ETag Kuat |
"8a3b9c2d" |
Identik byte-untuk-byte, digunakan untuk pengesahan |
| ETag Lemah |
W/"8a3b9c2d" |
Setara secara semantik, untuk perubahan paparan |
Arahan Kawalan Cache
Memahami arahan Cache-Control membolehkan pembinaan strategi caching yang optimum untuk aplikasi anda.
Rujukan Arahan
| Arahan |
Maksud |
Contoh |
| max-age |
Saiz respons kekal segar |
max-age=300 |
| public |
Cache boleh disimpan dan dikongsi |
public |
| private |
Cache untuk penerima sahaja |
private |
| must-revalidate |
Sahkan semula apabila basi |
must-revalidate |
| no-cache |
Mesti disahkan semula sebelum digunakan |
no-cache |
| no-store |
Jangan cache langsung |
no-store |
| immutable |
Tidak pernah berubah, cache selama-lamanya |
immutable |
| s-maxage |
Tempoh cache CDN |
s-maxage=3600 |
Pola Kawalan Cache Praktikal
// Pola 1: Cache pelayar, CDN selama 1 jam
Cache-Control: public, max-age=300, s-maxage=3600
// Pola 2: Data per-pengguna, tiada cache proksi
Cache-Control: private, max-age=1800
// Pola 3: Sentiasa segar, sentiasa periksa
Cache-Control: public, no-cache, must-revalidate
// Pola 4: Aset berversi yang tidak berubah
Cache-Control: public, max-age=31536000, immutable
Integrasi CDN
Smart Money API menyampaikan respons melalui rangkaian CDN global Cloudflare, secara automatik menyimpan respons di lokasi edge di seluruh dunia untuk latensi yang minima.
Bagaimana Smart Money CDN Berfungsi
- Permintaan Pengguna — Permintaan sampai ke lokasi edge Cloudflare terdekat
- Semakan Cache — Edge memeriksa sama ada respons di-cache dan segar
- Cache Hit — Jika di-cache, hidangkan serta-merta dengan latensi <10ms
- Cache Miss — Jika tidak di-cache, ambil dari pelayan asal
- Simpan dan Hidangkan — Cache respons dan hantar kepada pengguna
Konfigurasi Kunci Cache
Cloudflare menggunakan kunci cache untuk mengenal pasti respons yang di-cache secara unik. Secara lalai:
- Laluan permintaan dan parameter pertanyaan termasuk
- Kebanyakan header diabaikan (untuk memaksimumkan cache hit)
- Header Kebenaran TIDAK termasuk (tiada kebocoran akaun)
- Header tersuai boleh dimasukkan melalui header Vary
Pembersihan CDN
Smart Money secara automatik membersihkan cache CDN apabila data dikemas kini:
// Bersihkan URL tertentu dari CDN
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'
Mengukur Prestasi CDN
Periksa header respons untuk melihat sama ada permintaan dihidangkan dari cache:
// Cache hit dari edge CDN
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // saat sejak di-cache
// Cache miss, diambil dari asal
CF-Cache-Status: MISS
Age: 0
Cache Pihak Pelanggan
Laksanakan caching dalam aplikasi anda untuk mengurangkan lagi panggilan API dan meningkatkan responsif.
Pelaksanaan Cache Pelayar
// Buat storan cache
const cache = new Map();
async function fetchWithCache(url) {
// Semak cache dahulu
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Dapatkan dari API
const response = await fetch(url);
const data = await response.json();
// Parse tempoh cache dari headers
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Simpan dalam cache
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}
Service Worker Caching
Untuk sokongan luar talian dan strategi caching lanjutan, gunakan Service Workers:
// Cache respons API dengan Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
// Rangkaian dahulu, kembali ke cache
event.respondWith(
fetch(event.request)
.then(response => {
// Kemaskini cache dengan respons segar
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});
Cache Busting Strategies
Kadangkala anda perlu memaksa klien untuk mendapatkan data segar. Gunakan teknik ini:
Parameter Versi
Tambahkan parameter versi untuk membatalkan cache apabila data berubah:
// Sertakan versi data atau cap waktu
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// Apabila data dikemaskini, tingkatkan versi
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// URL baru = entri cache baru
Force Revalidation
Override cache dengan Cache-Control: no-cache apabila anda memerlukan data segar:
// JavaScript: Paksa permintaan segar
fetch(url, {
cache: 'no-cache', // Sahkan semula selalu
headers: {
'Cache-Control': 'max-age=0'
}
});
Monitoring Cache Performance
Lacak kadar hit cache dan penambahbaikan prestasi untuk mengesahkan strategi caching anda.
Cache Metrics to Monitor
- Hit Rate — Peratusan permintaan yang dilayan dari cache (sasaran: >70%)
- Response Time — Purata kependaman (cache: <50ms, tanpa cache: 100-300ms)
- Bandwidth Saved — Pengurangan dalam pemindahan data
- Origin Load — Pengurangan permintaan di pelayan asal
Analyzing Cache Headers
// Analisis headers cache respons
async function analyzeCache(url) {
const response = await fetch(url);
return {
cacheControl: response.headers
.get('cache-control'),
etag: response.headers.get('etag'),
age: response.headers.get('age'),
cfStatus: response.headers
.get('cf-cache-status'),
contentLength:
response.headers.get('content-length')
};
}
Caching Best Practices
1. Hormati Response Headers
Sentiasa hormati headers Cache-Control dari Smart Money API. Jangan cache kandungan yang ditandakan no-store atau no-cache.
2. Laksanakan Permintaan Bersyarat
Hantar If-None-Match (ETag) dan If-Modified-Since headers apabila menyahkan semula kandungan cache. Jimat bandwidth dengan respons 304.
3. Cache Sesuai dengan Jenis Data
- Data masa nyata (kadar pembiayaan): cache maksimum 1-5 saat
- Isyarat langsung (pergerakan ikan paus): cache 5-30 saat
- Data setiap jam (OHLCV): cache 1 jam
- Data sejarah: cache 24 jam
- Kandungan statik: cache 7 hari
4. Pantau Keberkesanan Cache
Lacak kadar hit dan penambahbaikan kependaman. Laraskan TTL berdasarkan keperluan kesegaran data dan prestasi cache.
5. Gunakan Vary Headers dengan Berhati-hati
Vary headers mengurangkan hit cache dengan mencipta entri cache berasingan. Gunakan hanya apabila perlu untuk tahap pengesahan atau parameter yang berbeza.
6. Cache di Pelbagai Lapisan
Laksanakan caching di lapisan CDN, pelayar, dan aplikasi. Setiap lapisan menangkap permintaan sebelum sampai ke asal.
Optimize Your API Performance
Infrastruktur caching Smart Money API memastikan respons di bawah 100ms pada skala global. Laksanakan strategi caching pintar untuk memaksimumkan prestasi dan meminimumkan kos.
Compare Plans
Semua rancangan termasuk caching CDN penuh. Tahap lebih tinggi menyediakan kawalan cache dan API pembersihan.