Dokumentace API
Průvodce ukládáním odpovědí do mezipaměti a integrací CDN
Optimalizujte výkon Smart Money API pomocí inteligentních strategií ukládání do mezipaměti. Naučte se používat hlavičky HTTP mezipaměti, validaci ETag, integraci CDN a vzory ukládání do mezipaměti na straně klienta, abyste snížili latenci a náklady na šířku pásma.
Publikováno 21. března 2026
•
16 minut čtení
•
Výkon
Přehled ukládání do mezipaměti
Koncové body Smart Money API poskytují data o trhu s kryptoměnami, která se mění v různých frekvencích. Některá data (velrybí adresy, funding rates) se aktualizují každých několik sekund, zatímco jiná data (historická analýza, vzdělávací obsah) zůstávají statická po celé hodiny. Inteligentní ukládání do mezipaměti výrazně zlepšuje výkon a snižuje náklady.
Smart Money API implementuje třívrstvou strategii ukládání do mezipaměti:
- Mezipaměť CDN Edge — Globální doručování obsahu s automatickým zneplatněním mezipaměti
- HTTP mezipaměť prohlížeče — Ukládání do mezipaměti na straně klienta pomocí standardních HTTP hlaviček
- Aplikační mezipaměť — Mezipaměť v paměti pro často přistupované datové sady
Přehled výkonu: Odpovědi z mezipaměti jsou 50-100krát rychlejší než nové požadavky na API a výrazně šetří šířku pásma. Správně nakonfigurovaná integrace s mezipamětí může snížit přenos dat o 70-85 %.
Každá odpověď Smart Money API obsahuje direktivy mezipaměti, které říkají klientům a CDN, jak dlouho zůstávají data platná. Porozumění těmto direktivám a jejich správná implementace jsou klíčové pro optimální výkon.
Základy ukládání do mezipaměti
HTTP ukládání do mezipaměti funguje na základě hlaviček odpovědí, které určují, zda lze obsah ukládat do mezipaměti a na jak dlouho.
Hlavička Cache-Control
Primární mechanismus pro řízení chování mezipaměti. Každá odpověď Smart Money API obsahuje hlavičku Cache-Control, která specifikuje:
- max-age — Doba v sekundách, po kterou zůstává odpověď platná
- public/private — Zda mohou mezipaměti ukládat odpověď
- must-revalidate — Zda je nutné před podáním ověřit aktuálnost
- no-store — Neukládat citlivá data
Příklady hlaviček mezipaměti
Různé koncové body mají různé požadavky na mezipaměť:
// Data o velrybích adresách (aktualizace každých 5 minut)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Data o real-time funding rates (aktualizace každou sekundu)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Historická data (nemění se)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"
Doba ukládání do mezipaměti podle typu koncového bodu
| Typ dat |
Doba ukládání do mezipaměti |
Případ použití |
| Real-time Funding |
1-5 sekund |
Live obchodování, velikost pozice |
| Whale Movements |
5 minut |
Potvrzení signálu, upozornění |
| Daily OHLCV |
1 hodina |
Technická analýza, grafy |
| Historical Analysis |
24 hodin |
Backtesting, výzkum |
| Static Content |
7 dní |
Dokumentace API, průvodci, konfigurace |
Získejte svůj API klíč za 30 sekund
Jste připraveni začít? Získejte zdarma API klíč (200 volání/den, bez karty) a začněte stahovat data o velrybách, funding rates a on-chain datech.
Získejte svůj API klíč →
ETag a podmíněné požadavky
ETagy (Entity Tags) poskytují efektivní způsob ověření obsahu mezipaměti bez nutnosti stahovat celé tělo odpovědi.
Jak ETagy fungují
- Počáteční požadavek — Klient požaduje data, server odpoví s ETag
- Uložení do mezipaměti — Klient uloží odpověď s ETag
- Následný požadavek — Klient odešle hlavičku If-None-Match s uloženou hodnotou ETag
- Validace — Pokud se data nezměnila, server vrátí 304 Not Modified
- Ušetřená šířka pásma — Tělo odpovědi není odesláno, výrazné úspory šířky pásma
Implementace ETag
// První požadavek
GET /v1/whales/btc HTTP/1.1
// Odpověď obsahuje ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...response body...}
// Po vypršení platnosti mezipaměti odešlete If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Pokud se data nezměnila, server odpoví 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Tělo odpovědi není odesláno! Ušetřená šířka pásma
Síla ETag
ETagy mohou být silné nebo slabé:
| Typ |
Formát |
Použití |
| Silný ETag |
"8a3b9c2d" |
Bajtově identické, používá se pro validaci |
| Slabý ETag |
W/"8a3b9c2d" |
Sémanticky ekvivalentní, pro změny zobrazení |
Direktivy Cache Control
Porozumění direktivám Cache-Control umožňuje vytvářet optimální strategie ukládání do mezipaměti pro vaši aplikaci.
Referenční direktivy
| Direktiva |
Význam |
Příklad |
| max-age |
Počet sekund, po které je odpověď čerstvá |
max-age=300 |
| public |
Mezipaměť může ukládat a sdílet |
public |
| private |
Mezipaměť pouze pro příjemce |
private |
| must-revalidate |
Revalidovat, když je zastaralá |
must-revalidate |
| no-cache |
Před použitím je nutné revalidovat |
no-cache |
| no-store |
Neukládat do mezipaměti vůbec |
no-store |
| immutable |
Nikdy se nemění, ukládat do mezipaměti navždy |
immutable |
| s-maxage |
Doba ukládání do mezipaměti CDN |
s-maxage=3600 |
Praktické vzory Cache-Control
// Vzor 1: Mezipaměť prohlížeče, CDN na 1 hodinu
Cache-Control: public, max-age=300, s-maxage=3600
// Vzor 2: Data pro jednotlivé uživatele, žádná proxy mezipaměť
Cache-Control: private, max-age=1800
// Vzor 3: Vždy čerstvé, vždy kontrolovat
Cache-Control: public, no-cache, must-revalidate
// Vzor 4: Neměnný verzovaný asset
Cache-Control: public, max-age=31536000, immutable
Integrace CDN
Smart Money API doručuje odpovědi prostřednictvím globální sítě CDN Cloudflare, automaticky ukládá odpovědi do mezipaměti na edge lokacích po celém světě pro minimální latenci.
Jak funguje Smart Money CDN
- Požadavek uživatele — Požadavek dorazí na nejbližší edge lokaci Cloudflare
- Kontrola mezipaměti — Edge zkontroluje, zda je odpověď v mezipaměti a je čerstvá
- Zásah do mezipaměti — Pokud je v mezipaměti, okamžitě doručit s latencí <10ms
- Minutí mezipaměti — Pokud není v mezipaměti, načíst ze zdrojového serveru
- Uložení a doručení — Uložit odpověď do mezipaměti a doručit uživateli
Konfigurace klíče mezipaměti
Cloudflare používá klíče mezipaměti k jednoznačné identifikaci uložených odpovědí. Ve výchozím nastavení:
- Cesta požadavku a parametry dotazu jsou zahrnuty
- Většina hlaviček je ignorována (pro maximalizaci zásahů do mezipaměti)
- Autorizační hlavičky NEJSOU zahrnuty (žádný únik účtů)
- Vlastní hlavičky lze zahrnout prostřednictvím hlavičky Vary
Pročištění CDN
Smart Money automaticky pročišťuje mezipaměť CDN při aktualizaci dat:
// Pročištění konkrétní URL z CDN
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'
Měření výkonu CDN
Zkontrolujte hlavičky odpovědi, zda byl požadavek obsloužen z mezipaměti:
// Zásah do mezipaměti CDN edge
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // sekund od uložení do mezipaměti
// Minutí mezipaměti, načteno ze zdrojového serveru
CF-Cache-Status: MISS
Age: 0
Ukládání do mezipaměti na straně klienta
Implementujte ukládání do mezipaměti ve vaší aplikaci, abyste dále snížili počet volání API a zlepšili rychlost odezvy.
Implementace mezipaměti prohlížeče
// Vytvoření úložiště mezipaměti
const cache = new Map();
async function fetchWithCache(url) {
// Nejprve zkontrolujte mezipaměť
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Načtěte z API
const response = await fetch(url);
const data = await response.json();
// Analyzujte dobu platnosti mezipaměti z hlaviček
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Uložte do mezipaměti
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}
Service Worker Caching
Pro podporu offline režimu a pokročilé strategie ukládání do mezipaměti použijte Service Workers:
// Ukládání odpovědí API pomocí Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
Nejprve síť, poté záložní mezipaměť
event.respondWith(
fetch(event.request)
.then(response => {
Aktualizujte mezipaměť čerstvou odpovědí
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});
Strategie pro vynucení aktualizace mezipaměti
Někdy je potřeba přinutit klienty, aby získali čerstvá data. Použijte tyto techniky:
Parametr verze
Přidejte parametr verze, aby se mezipaměť zneplatnila při změně dat:
// Zahrňte verzi dat nebo časové razítko
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// Když se data aktualizují, zvýšte verzi
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// Nová URL = nový záznam v mezipaměti
Vynucení revalidace
Přepište mezipaměť pomocí Cache-Control: no-cache, když potřebujete čerstvá data:
// JavaScript: Vynucení čerstvého požadavku
fetch(url, {
cache: 'no-cache', // Vždy revalidovat
headers: {
'Cache-Control': 'max-age=0'
}
});
Sledování výkonu mezipaměti
Sledujte míru zásahů do mezipaměti a zlepšení výkonu, abyste ověřili svou strategii ukládání do mezipaměti.
Metriky mezipaměti ke sledování
- Míra zásahů — Procento požadavků obsloužených z mezipaměti (cíl: >70 %)
- Doba odezvy — Průměrná latence (mezipaměť: <50 ms, bez mezipaměti: 100-300 ms)
- Ušetřená šířka pásma — Snížení přenosu dat
- Zatížení původního serveru — Snížení počtu požadavků na původní server
Analýza hlaviček mezipaměti
// Analyzujte hlavičky odpovědí mezipaměti
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')
};
}
Doporučené postupy pro ukládání do mezipaměti
1. Respektujte hlavičky odpovědí
Vždy respektujte hlavičky Cache-Control od Smart Money API. Neukládejte obsah označený jako no-store nebo no-cache.
2. Implementujte podmíněné požadavky
Odesílejte hlavičky If-None-Match (ETag) a If-Modified-Since při revalidaci obsahu v mezipaměti. Šetřete šířku pásma pomocí odpovědí 304.
3. Ukládejte do mezipaměti podle typu dat
- Data v reálném čase (funding rates): maximálně 1-5 sekund
- Živé signály (pohyby velryb): 5-30 sekund
- Hodinová data (OHLCV): 1 hodina
- Historická data: 24 hodin
- Statický obsah: 7 dní
4. Sledujte efektivitu mezipaměti
Sledujte míru zásahů a zlepšení latence. Upravte TTL na základě požadavků na čerstvost dat a výkonu mezipaměti.
5. Používejte hlavičky Vary opatrně
Hlavičky Vary snižují míru zásahů vytvářením samostatných záznamů v mezipaměti. Používejte je pouze v případě potřeby pro různé úrovně ověření nebo parametry.
6. Ukládejte do mezipaměti na více úrovních
Implementujte ukládání do mezipaměti na úrovni CDN, prohlížeče a aplikace. Každá úroveň zachytí požadavky před dosažením původního serveru.
Optimalizujte výkon vašeho API
Infrastruktura ukládání do mezipaměti Smart Money API zajišťuje odpovědi pod 100 ms v globálním měřítku. Implementujte inteligentní strategie ukládání do mezipaměti, abyste maximalizovali výkon a minimalizovali náklady.
Porovnejte plány
Všechny plány zahrnují plné ukládání do mezipaměti CDN. Vyšší úrovně poskytují API pro správu a čištění mezipaměti.