API Dokümantasyonu
Yanıt Önbelleğe Alma ve CDN Entegrasyonu Kılavuzu
Smart Money API performansını akıllı önbelleğe alma stratejileriyle optimize edin. HTTP önbellek başlıklarını, ETag doğrulamasını, CDN entegrasyonunu ve istemci tarafı önbelleğe alma modellerini öğrenerek gecikmeyi ve bant genişliği maliyetlerini azaltın.
21 Mart 2026 tarihinde yayınlandı
•
16 dakika okuma
•
Performans
Önbelleğe Alma Genel Bakış
Smart Money API uç noktaları, farklı frekanslarda değişen kripto para piyasası verilerini sunar. Bazı veriler (balina adresleri, fonlama oranları) birkaç saniyede bir güncellenirken, diğer veriler (tarihsel analiz, eğitim içeriği) saatlerce sabit kalır. Akıllı önbelleğe alma, performansı önemli ölçüde artırır ve maliyetleri düşürür.
Smart Money API, üç katmanlı bir önbelleğe alma stratejisi uygular:
- CDN Kenar Önbelleği — Otomatik önbellek geçersiz kılma ile küresel içerik dağıtımı
- HTTP Tarayıcı Önbelleği — Standart HTTP başlıklarını kullanarak istemci tarafı önbelleğe alma
- Uygulama Önbelleği — Sık erişilen veri kümeleri için bellek içi önbelleğe alma
Performans İçgörüsü: Önbelleğe alınan yanıtlar, taze API isteklerinden 50-100 kat daha hızlı hizmet verir ve bant genişliğini önemli ölçüde tasarruf eder. Doğru şekilde önbelleğe alınmış bir entegrasyon, veri transferini %70-85 oranında azaltabilir.
Her Smart Money API yanıtı, verilerin ne kadar süre geçerli kalacağını istemcilere ve CDN'lere söyleyen önbellek direktifleri içerir. Bu direktifleri anlamak ve doğru şekilde uygulamak, optimal performans için çok önemlidir.
Önbelleğe Alma Temelleri
HTTP önbelleğe alma, içeriğin önbelleğe alınıp alınamayacağını ve ne kadar süreyle önbelleğe alınabileceğini belirten yanıt başlıklarına dayanır.
Cache-Control Başlığı
Önbellek davranışını kontrol etmek için birincil mekanizma. Her Smart Money API yanıtı, aşağıdakileri belirten bir Cache-Control başlığı içerir:
- max-age — Yanıtın geçerli kalacağı saniye cinsinden süre
- public/private — Ara önbelleklerin bunu saklayıp saklayamayacağı
- must-revalidate — Hizmet vermeden önce tazelik kontrolü yapılıp yapılmayacağı
- no-store — Hassas verileri önbelleğe alma
Örnek Önbellek Başlıkları
Farklı uç noktaların farklı önbellek gereksinimleri vardır:
// Balina adresi verileri (5 dakikada bir güncellenir)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Gerçek zamanlı fonlama oranları (saniyede bir güncellenir)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Tarihsel veriler (değişmez)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"
Uç Nokta Türüne Göre Önbellek Süresi
| Veri Türü |
Önbellek Süresi |
Kullanım Senaryosu |
| Gerçek Zamanlı Fonlama |
1-5 saniye |
Canlı işlem, pozisyon boyutlandırma |
| Balina Hareketleri |
5 dakika |
Sinyal onayı, uyarılar |
| Günlük OHLCV |
1 saat |
Teknik analiz, grafikler |
| Tarihsel Analiz |
24 saat |
Geriye dönük test, araştırma |
| Statik İçerik |
7 gün |
API dokümanları, kılavuzlar, yapılandırma |
API anahtarınızı 30 saniyede alın
Hazır mısınız? Ücretsiz bir API anahtarı alın (günde 100 çağrı, kart gerekmez) ve canlı balina, fonlama ve zincir üstü verileri çekmeye başlayın.
API anahtarınızı alın →
ETag ve Koşullu İstekler
ETag'ler (Varlık Etiketleri), tam yanıt gövdesini indirmeden önbelleğe alınmış içeriği doğrulamanın verimli bir yolunu sağlar.
ETag'ler Nasıl Çalışır
- İlk İstek — İstemci veri ister, sunucu ETag ile yanıt verir
- Önbellek Depolama — İstemci yanıtı ETag ile önbelleğe alır
- Sonraki İstek — İstemci, önbelleğe alınmış ETag ile If-None-Match başlığını gönderir
- Doğrulama — Veri değişmemişse, sunucu 304 Not Modified döndürür
- Tasarruf Edilen Bant Genişliği — Yanıt gövdesi gönderilmez, büyük bant genişliği tasarrufu
ETag Uygulaması
// İlk istek
GET /v1/whales/btc HTTP/1.1
// Yanıt ETag içerir
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...yanıt gövdesi...}
// Önbellek süresi dolduğunda, If-None-Match gönderin
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Değişmemişse, sunucu 304 yanıtı verir
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Gövde gönderilmez! Bant genişliği tasarrufu
ETag Gücü
ETag'lar güçlü veya zayıf olabilir:
| Tür |
Biçim |
Kullanım Senaryosu |
| Güçlü ETag |
"8a3b9c2d" |
Bayt bazında aynı, doğrulama için kullanılır |
| Zayıf ETag |
W/"8a3b9c2d" |
Anlamsal olarak eşdeğer, görüntü değişiklikleri için |
Önbellek Kontrol Direktifleri
Cache-Control direktiflerini anlamak, uygulamanız için en uygun önbellek stratejilerini oluşturmanızı sağlar.
Direktif Referansı
| Direktif |
Anlamı |
Örnek |
| max-age |
Yanıtın taze kalacağı saniye sayısı |
max-age=300 |
| public |
Önbellek saklanabilir ve paylaşılabilir |
public |
| private |
Yalnızca alıcı için önbellek |
private |
| must-revalidate |
Bayatladığında yeniden doğrula |
must-revalidate |
| no-cache |
Kullanmadan önce yeniden doğrula |
no-cache |
| no-store |
Hiç önbelleğe alma |
no-store |
| immutable |
Asla değişmez, sonsuza kadar önbelleğe al |
immutable |
| s-maxage |
CDN önbellek süresi |
s-maxage=3600 |
Pratik Cache-Control Kalıpları
// Kalıp 1: Tarayıcı önbelleği, CDN için 1 saat
Cache-Control: public, max-age=300, s-maxage=3600
// Kalıp 2: Kullanıcıya özel veri, proxy önbelleği yok
Cache-Control: private, max-age=1800
// Kalıp 3: Her zaman taze, her zaman kontrol et
Cache-Control: public, no-cache, must-revalidate
// Kalıp 4: Değişmeyen versiyonlu varlık
Cache-Control: public, max-age=31536000, immutable
CDN Entegrasyonu
Smart Money API, yanıtları Cloudflare'in küresel CDN ağı üzerinden sunar ve dünya çapındaki edge lokasyonlarında otomatik olarak önbelleğe alarak minimum gecikme sağlar.
Smart Money CDN Nasıl Çalışır?
- Kullanıcı İsteği — İstek en yakın Cloudflare edge lokasyonuna ulaşır
- Önbellek Kontrolü — Edge, yanıtın önbellekte olup olmadığını ve taze olup olmadığını kontrol eder
- Önbellek İsabeti — Önbellekte varsa, <10ms gecikme ile hemen sunulur
- Önbellek Iskalaması — Önbellekte yoksa, orijin sunucudan getirilir
- Sakla ve Sun — Yanıtı önbelleğe al ve kullanıcıya ilet
Önbellek Anahtarı Yapılandırması
Cloudflare, önbelleğe alınan yanıtları benzersiz şekilde tanımlamak için önbellek anahtarlarını kullanır. Varsayılan olarak:
- İstek yolu ve sorgu parametreleri dahildir
- Çoğu başlık göz ardı edilir (önbellek isabetlerini maksimize etmek için)
- Authorization başlıkları DAHİL DEĞİLDİR (hesap sızıntısı olmaz)
- Özel başlıklar Vary başlığı aracılığıyla dahil edilebilir
CDN Temizleme
Smart Money, veri güncellendiğinde CDN önbelleğini otomatik olarak temizler:
// CDN'den belirli bir URL'yi temizle
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'
CDN Performansını Ölçme
İsteğin önbellekten sunulup sunulmadığını kontrol etmek için yanıt başlıklarını inceleyin:
// CDN edge'inden önbellek isabeti
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // önbelleğe alındığından beri geçen saniye
// Önbellek ıskalaması, orijin sunucudan getirildi
CF-Cache-Status: MISS
Age: 0
İstemci Tarafında Önbellekleme
Uygulamanızda önbelleklemeyi uygulayarak API çağrılarını daha da azaltabilir ve yanıt hızını artırabilirsiniz.
Tarayıcı Önbelleği Uygulaması
// Önbellek depolama oluştur
const cache = new Map();
async function fetchWithCache(url) {
// Önbelleği önce kontrol et
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// API'den çek
const response = await fetch(url);
const data = await response.json();
// Önbellek süresini başlıklardan ayrıştır
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Önbelleğe kaydet
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}
Service Worker Önbelleği
Çevrimdışı destek ve gelişmiş önbellek stratejileri için Service Worker'ları kullanın:
// API yanıtlarını Service Worker ile önbelleğe al
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
// Önce ağ, sonra önbelleğe dön
event.respondWith(
fetch(event.request)
.then(response => {
// Önbelleği taze yanıtla güncelle
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});
Önbellek Kırma Stratejileri
Bazen istemcilerin taze veri almasını zorlamanız gerekir. Bu teknikleri kullanın:
Versiyon Parametresi
Veri değiştiğinde önbellekleri geçersiz kılmak için bir versiyon parametresi ekleyin:
// Veri versiyonu veya zaman damgası ekle
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// Veri güncellendiğinde versiyonu artır
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// Yeni URL = yeni önbellek girişi
Zorunlu Yeniden Doğrulama
Taze veriye ihtiyaç duyduğunuzda Cache-Control: no-cache ile önbelleği geçersiz kılın:
// JavaScript: Taze istek zorla
fetch(url, {
cache: 'no-cache', // Her zaman yeniden doğrula
headers: {
'Cache-Control': 'max-age=0'
}
});
Önbellek Performansını İzleme
Önbellek isabet oranlarını ve performans iyileştirmelerini takip ederek önbellek stratejinizi doğrulayın.
İzlenmesi Gereken Önbellek Metrikleri
- İsabet Oranı — Önbellekten sunulan isteklerin yüzdesi (hedef: >%70)
- Yanıt Süresi — Ortalama gecikme (önbellekli: <50ms, önbelleksiz: 100-300ms)
- Tasarruf Edilen Bant Genişliği — Veri transferinde azalma
- Kaynak Yükü — Kaynak sunucudaki istek azalması
Önbellek Başlıklarını Analiz Etme
// Yanıt önbellek başlıklarını analiz et
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')
};
}
Önbellek En İyi Uygulamaları
1. Yanıt Başlıklarına Saygı Gösterin
Smart Money API'den gelen Cache-Control başlıklarına her zaman uyun. no-store veya no-cache ile işaretlenmiş içeriği önbelleğe almayın.
2. Koşullu İstekleri Uygulayın
Önbelleğe alınmış içeriği yeniden doğrularken If-None-Match (ETag) ve If-Modified-Since başlıklarını gönderin. 304 yanıtlarıyla bant genişliğinden tasarruf edin.
3. Veri Türüne Göre Uygun Şekilde Önbelleğe Alın
- Gerçek zamanlı veri (fonlama oranları): maksimum 1-5 saniye önbellek
- Canlı sinyaller (balina hareketleri): 5-30 saniye önbellek
- Saatlik veri (OHLCV): 1 saat önbellek
- Tarihsel veri: 24 saat önbellek
- Statik içerik: 7 gün önbellek
4. Önbellek Etkinliğini İzleyin
İsabet oranlarını ve gecikme iyileştirmelerini takip edin. TTL'leri veri tazelik gereksinimlerine ve önbellek performansına göre ayarlayın.
5. Vary Başlıklarını Dikkatli Kullanın
Vary başlıkları, ayrı önbellek girişleri oluşturarak önbellek isabetlerini azaltır. Yalnızca farklı kimlik doğrulama seviyeleri veya parametreler için gerekli olduğunda kullanın.
6. Birden Çok Katmanda Önbelleğe Alın
CDN, tarayıcı ve uygulama seviyelerinde önbelleklemeyi uygulayın. Her katman, istekleri kaynağa ulaşmadan önce yakalar.
API Performansınızı Optimize Edin
Smart Money API'nin önbellek altyapısı, küresel ölçekte 100ms altı yanıt süreleri sağlar. Performansı maksimize etmek ve maliyetleri minimize etmek için akıllı önbellek stratejileri uygulayın.
Planları Karşılaştırın
Tüm planlar tam CDN önbelleğini içerir. Üst seviye planlar önbellek kontrolü ve temizleme API'leri sunar.