API-dokumentation
Guide för Response Caching och CDN-integrering
Optimera Smart Money API:s prestanda med intelligenta cachningsstrategier. Lär dig om HTTP-cache-headers, ETag-validering, CDN-integrering och klient-sidiga cachningsmönster för att minska latens och bandbreddskostnader.
Publicerad 21 mars 2026
•
16 min läsning
•
Prestanda
Översikt över cachning
Smart Money API:s slutpunkter tillhandahåller kryptovalutamarknadsdata som ändras med olika frekvenser. Vissa data (valadresser, finansieringsräntor) uppdateras varje få sekund, medan andra data (historisk analys, utbildningsmaterial) förblir statiska i timmar. Intelligenta cachningsstrategier förbättrar prestandan avsevärt och minskar kostnaderna.
Smart Money API implementerar en tre-nivås cachningsstrategi:
- CDN Edge Cache — Global innehållsleverans med automatisk cache-ogiltigförklaring
- HTTP Browser Cache — Klient-sidig cachning med standard-HTTP-headers
- Application Cache — Minnescachning för ofta använda dataset
Prestandainsikt: Cachade svar levereras 50-100 gånger snabbare än nya API-förfrågningar och sparar bandbredd avsevärt. En korrekt cachad integration kan minska dataöverföringen med 70-85%.
Varje Smart Money API-svar innehåller cache-direktiv som talar om för klienter och CDN:n hur länge data förblir giltig. Att förstå dessa direktiv och implementera dem korrekt är avgörande för optimal prestanda.
Grundläggande om cachning
HTTP-cachning fungerar baserat på svarshuvuden som indikerar om innehåll kan cachelagras och hur länge.
Cache-Control Header
Den primära mekanismen för att kontrollera cache-beteende. Varje Smart Money API-svar innehåller en Cache-Control-header som specificerar:
- max-age — Varaktighet i sekunder som svaret förblir giltigt
- public/private — Om mellanliggande cacheminnen kan lagra det
- must-revalidate — Om man ska kontrollera färskhet innan leverans
- no-store — Cachelagra inte känsliga data
Exempel på Cache Headers
Olika slutpunkter har olika cache-krav:
// Valadressdata (uppdateras var 5:e minut)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// Realtidsfinansieringsräntor (uppdateras varje sekund)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// Historisk data (ändras inte)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"
Cache Duration by Endpoint Type
| Datatyp |
Cache Duration |
Användningsfall |
| Realtidsfinansiering |
1-5 sekunder |
Livehandel, positionsstorlek |
| Valrörelser |
5 minuter |
Signalbekräftelse, aviseringar |
| Daglig OHLCV |
1 timme |
Teknisk analys, diagram |
| Historisk analys |
24 timmar |
Backtesting, forskning |
| Statiskt innehåll |
7 dagar |
API-dokumentation, guider, konfiguration |
Få din API-nyckel på 30 sekunder
Redo att bygga? Hämta en gratis API-nyckel (200 anrop/dag, inget kort behövs) och börja hämta live-data om valar, finansiering och on-chain-data.
Få din API-nyckel →
ETag och villkorade förfrågningar
ETags (Entity Tags) ger ett effektivt sätt att validera cachat innehåll utan att ladda ner hela svarskroppen.
Hur ETags fungerar
- Inledande förfrågan — Klienten begär data, servern svarar med ETag
- Cache Storage — Klienten cachar svaret med ETag
- Efterföljande förfrågan — Klienten skickar If-None-Match-header med cachad ETag
- Validering — Om data är oförändrad svarar servern med 304 Not Modified
- Bandbredd Sparad — Ingen svarskropp skickas, stora besparingar i bandbredd
ETag-implementering
// Första begäran
GET /v1/whales/btc HTTP/1.1
// Svaret inkluderar ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...response body...}
// Efter att cachen gått ut, skicka If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// Om oförändrad svarar servern med 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// Ingen kropp skickad! Bandbredd sparad
ETag-styrka
ETags kan vara starka eller svaga:
| Typ |
Format |
Användningsfall |
| Stark ETag |
"8a3b9c2d" |
Byte-för-byte identisk, använd för validering |
| Svag ETag |
W/"8a3b9c2d" |
Semantiskt ekvivalent, för visningsändringar |
Cache Control-direktiv
Att förstå Cache-Control-direktiv möjliggör byggande av optimala cachningsstrategier för din applikation.
Direktivreferens
| Direktiv |
Betydelse |
Exempel |
| max-age |
Sekunder svar förblir färskt |
max-age=300 |
| public |
Cache kan lagra och dela |
public |
| private |
Cache endast för mottagaren |
private |
| must-revalidate |
Validera om när det är inaktuellt |
must-revalidate |
| no-cache |
Måste valideras innan användning |
no-cache |
| no-store |
Cacha inte alls |
no-store |
| immutable |
Ändras aldrig, cacha för evigt |
immutable |
| s-maxage |
CDN-cachevaraktighet |
s-maxage=3600 |
Praktiska Cache-Control-mönster
// Mönster 1: Webbläsarcache, CDN i 1 timme
Cache-Control: public, max-age=300, s-maxage=3600
// Mönster 2: Per-användardata, ingen proxycache
Cache-Control: private, max-age=1800
// Mönster 3: Alltid färskt, alltid kontrollera
Cache-Control: public, no-cache, must-revalidate
// Mönster 4: Oföränderlig versionerad tillgång
Cache-Control: public, max-age=31536000, immutable
CDN-integrering
Smart Money API levererar svar genom Cloudflares globala CDN-nätverk, cachar automatiskt svar vid edge-platser över hela världen för minimal fördröjning.
Hur Smart Money CDN Fungerar
- Användarförfrågan — Förfrågan träffar närmaste Cloudflare-edgeplats
- Cachekontroll — Edge kontrollerar om svaret är cachat och färskt
- Cacheträff — Om cachat, servera omedelbart med <10ms fördröjning
- Cachemiss — Om inte cachat, hämta från ursprungsservern
- Lagring och Servering — Cacha svaret och leverera till användaren
Cache Key-konfiguration
Cloudflare använder cache-nycklar för att unikt identifiera cachade svar. Som standard:
- Begärans sökväg och frågeparametrar inkluderas
- De flesta huvuden ignoreras (för att maximera cacheträffar)
- Authorization-huvuden inkluderas INTE (ingen kontoleckage)
- Anpassade huvuden kan inkluderas via Vary-header
CDN-rensning
Smart Money rensar automatiskt CDN-cachen när data uppdateras:
// Rensa specifik URL från 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ätning av CDN-prestanda
Kontrollera svarshuvuden för att se om förfrågan serverades från cache:
// Cacheträff från CDN-edge
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // sekunder sedan cachad
// Cachemiss, hämtad från ursprung
CF-Cache-Status: MISS
Age: 0
Klientsidig Cachning
Implementera cachning i din applikation för att ytterligare minska API-anrop och förbättra responsivitet.
Webbläsarcache-implementering
// Skapa cache-lagring
const cache = new Map();
async function fetchWithCache(url) {
// Kontrollera cache först
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// Hämta från API
const response = await fetch(url);
const data = await response.json();
// Tolka cache-varaktighet från headers
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// Spara i cache
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}
Service Worker Caching
För offline-stöd och avancerade cachestrategier, använd Service Workers:
// Cacha API-svar med Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
// Nätverk först, fall tillbaka på cache
event.respondWith(
fetch(event.request)
.then(response => {
// Uppdatera cache med färskt svar
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});
Cache Busting Strategies
Ibland behöver du tvinga klienter att hämta färsk data. Använd dessa tekniker:
Versionsparameter
Lägg till en versionsparameter för att ogiltigförklara cache när data ändras:
// Inkludera dataversion eller tidsstämpel
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// När data uppdateras, öka versionen
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// Ny URL = ny cachepost
Tvinga Revalidering
Åsidosätt cache med Cache-Control: no-cache när du behöver färsk data:
// JavaScript: Tvinga färsk förfrågan
fetch(url, {
cache: 'no-cache', // Revalidera alltid
headers: {
'Cache-Control': 'max-age=0'
}
});
Övervaka Cacheprestanda
Spåra cacheträffar och prestandaförbättringar för att validera din cachestrategi.
Cachemått att övervaka
- Träffprocent — Andel förfrågningar som hanteras från cache (mål: >70%)
- Svartid — Genomsnittlig latens (cachad: <50ms, ocachad: 100-300ms)
- Bandbredd sparad — Minskning i dataöverföring
- Ursprungslast — Minskning av förfrågningar till ursprungsservern
Analysera Cacheheaders
// Analysera svars-cacheheaders
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')
};
}
Cache Bästa Praktiker
1. Respektera Svarsheaders
Respektera alltid Cache-Control headers från Smart Money API. Cacha inte innehåll markerat med no-store eller no-cache.
2. Implementera Villkorliga Förfrågningar
Skicka If-None-Match (ETag) och If-Modified-Since headers när du revaliderar cachat innehåll. Spara bandbredd med 304-svar.
3. Cacha Lämpligt efter Datatyp
- Realtidsdata (funding rates): 1-5 sekunders cache max
- Live-signaler (valrörelser): 5-30 sekunders cache
- Timdata (OHLCV): 1 timmes cache
- Historisk data: 24-timmars cache
- Statiskt innehåll: 7-dagars cache
4. Övervaka Cacheeffektivitet
Spåra träffprocent och latensförbättringar. Justera TTL baserat på datafärskhetskrav och cacheprestanda.
5. Använd Vary-headers Försiktigt
Vary-headers minskar cacheträffar genom att skapa separata cacheposter. Använd endast när det behövs för olika autentiseringsnivåer eller parametrar.
6. Cacha på Flera Nivåer
Implementera cachning på CDN-, webbläsar- och applikationsnivåer. Varje nivå fångar förfrågningar innan de når ursprunget.
Optimera Din API-prestanda
Smart Money API:s cacheinfrastruktur säkerställer svar under 100ms globalt. Implementera intelligenta cachestrategier för att maximera prestanda och minimera kostnader.
Jämför Planer
Alla planer inkluderar full CDN-cachning. Högre nivåer ger cachekontroll och rensnings-API:er.