Dokumentasi API
Panduan Penyimpanan Cache Respons dan Integrasi CDN
Optimalkan kinerja Smart Money API dengan strategi caching cerdas. Pelajari header cache HTTP, validasi ETag, integrasi CDN, dan pola caching sisi klien untuk mengurangi latensi dan biaya bandwidth.
Diterbitkan 21 Maret 2026
•
16 menit dibaca
•
Kinerja
Ikhtisar Caching
Endpoint Smart Money API menyajikan data pasar kripto yang berubah pada frekuensi berbeda. Beberapa data (alamat paus, funding rates) diperbarui setiap beberapa detik, sementara data lain (analisis historis, konten edukasi) tetap statis selama berjam-jam. Caching cerdas secara dramatis meningkatkan kinerja dan mengurangi biaya.
Smart Money API menerapkan strategi caching tiga lapis:
- Cache Edge CDN — Pengiriman konten global dengan pembatalan cache otomatis
- Cache Browser HTTP — Caching sisi klien menggunakan header HTTP standar
- Cache Aplikasi — Caching dalam memori untuk dataset yang sering diakses
Wawasan Kinerja: Respons yang di-cache melayani 50-100x lebih cepat daripada permintaan API baru dan menghemat bandwidth secara signifikan. Integrasi yang di-cache dengan benar dapat mengurangi transfer data sebesar 70-85%.
Setiap respons Smart Money API mencakup direktif cache yang memberi tahu klien dan CDN berapa lama data tetap valid. Memahami direktif ini dan menerapkannya dengan benar sangat penting untuk kinerja optimal.
Dasar-Dasar Caching
Caching HTTP beroperasi berdasarkan header respons yang menunjukkan apakah konten dapat di-cache dan untuk berapa lama.
Header Cache-Control
Mekanisme utama untuk mengontrol perilaku cache. Setiap respons Smart Money API mencakup header Cache-Control yang menentukan:
- max-age — Durasi dalam detik respons tetap valid
- public/private — Apakah cache perantara dapat menyimpannya
- must-revalidate — Apakah harus memeriksa kesegaran sebelum melayani
- no-store — Jangan menyimpan data sensitif
Contoh Header Cache
Endpoint yang berbeda memiliki persyaratan cache yang berbeda:
// Data alamat paus (diperbarui setiap 5 menit)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Funding rates real-time (diperbarui setiap detik)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Data historis (tidak berubah)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"
Durasi Cache Berdasarkan Jenis Endpoint
| Jenis Data |
Durasi Cache |
Kasus Penggunaan |
| Funding Real-time |
1-5 detik |
Trading langsung, penentuan ukuran posisi |
| Pergerakan Paus |
5 menit |
Konfirmasi sinyal, peringatan |
| OHLCV Harian |
1 jam |
Analisis teknis, grafik |
| Analisis Historis |
24 jam |
Backtesting, penelitian |
| Konten Statis |
7 hari |
Dokumen API, panduan, konfigurasi |
Dapatkan kunci API Anda dalam 30 detik
Siap membangun? Ambil kunci API gratis (100 panggilan/hari, tanpa kartu) dan mulai menarik data paus, funding, dan on-chain langsung.
Dapatkan kunci API →
ETag dan Permintaan Bersyarat
ETag (Entity Tags) menyediakan cara efisien untuk memvalidasi konten yang di-cache tanpa mengunduh seluruh badan respons.
Cara Kerja ETag
- Permintaan Awal — Klien meminta data, server merespons dengan ETag
- Penyimpanan Cache — Klien menyimpan respons dengan ETag
- Permintaan Berikutnya — Klien mengirim header If-None-Match dengan ETag yang di-cache
- Validasi — Jika data tidak berubah, server mengembalikan 304 Not Modified
- Bandwidth Tersimpan — Tidak ada body respons yang dikirim, penghematan bandwidth besar
Implementasi ETag
// Permintaan pertama
GET /v1/whales/btc HTTP/1.1
// Respons mencakup ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...response body...}
// Setelah cache kedaluwarsa, kirim If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Jika tidak berubah, server merespons 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Tidak ada body yang dikirim! Bandwidth tersimpan
Kekuatan ETag
ETag bisa kuat atau lemah:
| Tipe |
Format |
Kasus Penggunaan |
| ETag Kuat |
"8a3b9c2d" |
Identik byte-per-byte, digunakan untuk validasi |
| ETag Lemah |
W/"8a3b9c2d" |
Setara secara semantik, untuk perubahan tampilan |
Direktif Cache Control
Memahami direktif Cache-Control memungkinkan pembuatan strategi caching yang optimal untuk aplikasi Anda.
Referensi Direktif
| Direktif |
Arti |
Contoh |
| max-age |
Detik respons tetap segar |
max-age=300 |
| public |
Cache dapat disimpan dan dibagikan |
public |
| private |
Cache hanya untuk penerima |
private |
| must-revalidate |
Validasi ulang saat basi |
must-revalidate |
| no-cache |
Harus divalidasi ulang sebelum digunakan |
no-cache |
| no-store |
Jangan simpan cache sama sekali |
no-store |
| immutable |
Tidak pernah berubah, cache selamanya |
immutable |
| s-maxage |
Durasi cache CDN |
s-maxage=3600 |
Pola Cache-Control Praktis
// Pola 1: Cache browser, CDN selama 1 jam
Cache-Control: public, max-age=300, s-maxage=3600
// Pola 2: Data per-user, tidak ada cache proxy
Cache-Control: private, max-age=1800
// Pola 3: Selalu segar, selalu periksa
Cache-Control: public, no-cache, must-revalidate
// Pola 4: Aset versi yang tidak berubah
Cache-Control: public, max-age=31536000, immutable
Integrasi CDN
Smart Money API mengirimkan respons melalui jaringan CDN global Cloudflare, secara otomatis menyimpan respons di lokasi edge di seluruh dunia untuk latensi minimal.
Cara Kerja CDN Smart Money
- Permintaan Pengguna — Permintaan mencapai lokasi edge Cloudflare terdekat
- Pemeriksaan Cache — Edge memeriksa apakah respons di-cache dan segar
- Cache Hit — Jika di-cache, langsung disajikan dengan latensi <10ms
- Cache Miss — Jika tidak di-cache, ambil dari server asal
- Simpan dan Sajikan — Cache respons dan kirim ke pengguna
Konfigurasi Kunci Cache
Cloudflare menggunakan kunci cache untuk mengidentifikasi respons yang di-cache secara unik. Secara default:
- Path permintaan dan parameter query disertakan
- Sebagian besar header diabaikan (untuk memaksimalkan cache hit)
- Header Otorisasi TIDAK disertakan (tidak ada kebocoran akun)
- Header khusus dapat disertakan melalui header Vary
Pembersihan CDN
Smart Money secara otomatis membersihkan cache CDN saat data diperbarui:
// Hapus 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 Kinerja CDN
Periksa header respons untuk melihat apakah permintaan dilayani dari cache:
// Cache hit dari edge CDN
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // detik sejak di-cache
// Cache miss, diambil dari asal
CF-Cache-Status: MISS
Age: 0
Cache Sisi Klien
Implementasikan caching di aplikasi Anda untuk lebih mengurangi panggilan API dan meningkatkan responsivitas.
Implementasi Cache Browser
// Buat penyimpanan cache
const cache = new Map();
async function fetchWithCache(url) {
// Periksa cache terlebih dahulu
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Ambil dari API
const response = await fetch(url);
const data = await response.json();
// Parse durasi cache dari header
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 dukungan offline 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')) {
// Network first, fall back to cache
event.respondWith(
fetch(event.request)
.then(response => {
// Perbarui cache dengan respons terbaru
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});
Cache Busting Strategies
Terkadang Anda perlu memaksa klien untuk mendapatkan data segar. Gunakan teknik berikut:
Version Parameter
Tambahkan parameter versi untuk menginvalidasi cache saat data berubah:
// Sertakan versi data atau timestamp
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// Saat data diperbarui, tingkatkan versi
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// URL baru = entri cache baru
Force Revalidation
Timpa cache dengan Cache-Control: no-cache saat Anda membutuhkan data segar:
// JavaScript: Paksa permintaan segar
fetch(url, {
cache: 'no-cache', // Selalu validasi ulang
headers: {
'Cache-Control': 'max-age=0'
}
});
Monitoring Cache Performance
Lacak tingkat hit cache dan peningkatan kinerja untuk memvalidasi strategi caching Anda.
Cache Metrics to Monitor
- Hit Rate — Persentase permintaan yang dilayani dari cache (target: >70%)
- Response Time — Latensi rata-rata (cache: <50ms, tanpa cache: 100-300ms)
- Bandwidth Saved — Pengurangan transfer data
- Origin Load — Pengurangan permintaan di server asal
Analyzing Cache Headers
// Analisis header 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 Header Respons
Selalu hormati header Cache-Control dari Smart Money API. Jangan cache konten yang ditandai no-store atau no-cache.
2. Implementasikan Permintaan Bersyarat
Kirim header If-None-Match (ETag) dan If-Modified-Saat saat memvalidasi ulang konten yang di-cache. Hemat bandwidth dengan respons 304.
3. Cache Sesuai Jenis Data
- Data real-time (funding rates): cache maksimal 1-5 detik
- Sinyal langsung (pergerakan whale): cache 5-30 detik
- Data per jam (OHLCV): cache 1 jam
- Data historis: cache 24 jam
- Konten statis: cache 7 hari
4. Pantau Efektivitas Cache
Lacak tingkat hit dan peningkatan latensi. Sesuaikan TTL berdasarkan kebutuhan kesegaran data dan kinerja cache.
5. Gunakan Header Vary dengan Hati-hati
Header Vary mengurangi hit cache dengan membuat entri cache terpisah. Gunakan hanya saat diperlukan untuk level autentikasi atau parameter yang berbeda.
6. Cache di Beberapa Lapisan
Implementasikan caching di tingkat CDN, browser, dan aplikasi. Setiap lapisan menangkap permintaan sebelum mencapai asal.
Optimalkan Kinerja API Anda
Infrastruktur caching Smart Money API memastikan respons di bawah 100ms secara global. Terapkan strategi caching cerdas untuk memaksimalkan kinerja dan meminimalkan biaya.
Bandingkan Paket
Semua paket termasuk caching CDN penuh. Tingkat yang lebih tinggi menyediakan kontrol cache dan API pembersihan.