Caching und ETags
Auf dieser Seite
Feedivo liefert ETags für Feed-Metadaten, Post-Listen und einzelne Posts. Damit kann ein Client prüfen, ob sich eine Antwort geändert hat, ohne den gesamten JSON-Inhalt erneut zu übertragen.
Bedingter Abruf#
Speichere den ETag zusammen mit der Antwort und sende ihn beim identischen
Aufruf als If-None-Match zurück:
GET /api/v1/feeds/9cf…/posts?limit=100
Authorization: Bearer <API-TOKEN>
If-None-Match: "a83f…"
Ist die Darstellung unverändert, antwortet Feedivo mit 304 Not Modified und
einem leeren Body. Verwende dann deine gespeicherte Antwort.
response = request(url, if_none_match=stored_etag)
if response.status == 304:
use(stored_body)
else if response.status == 200:
validate(response.body)
store(response.etag, response.body)
use(response.body)
else:
handle_error_without_deleting_cache()
ETag gehört zur vollständigen Abfrage#
Ein ETag gilt nur für genau die URL und Parameterkombination, für die er
ausgestellt wurde. Führe deshalb getrennte Cache-Einträge für unterschiedliche
Werte von limit, cursor, since und updated_since.
Bei Post-Listen fließen auch relevante Feed-Änderungen in die Kennung ein. Ändert sich beispielsweise die Darstellung oder der Feed-Filter, kann sich der ETag ändern, obwohl einzelne Post-Datensätze gleich aussehen.
Cache-Control nach Endpunkt#
| Endpunkt | Cache-Control |
Verhalten |
|---|---|---|
/me |
private, no-store |
Antwort nicht speichern |
/feeds und /feeds/{uuid} |
private, no-cache |
Lokal speichern erlaubt, vor Verwendung stets validieren |
| Post-Liste und einzelner Post | private, max-age=60 |
Bis zu 60 Sekunden lokal verwenden, danach validieren |
private bedeutet, dass die Antwort nur in einem privaten Client-Cache liegen
darf. Lege tokengebundene Antworten niemals in einen gemeinsam genutzten
Proxy- oder CDN-Cache.
Hinweis
Auch eine 304-Antwort ist eine API-Anfrage und zählt zum Rate-Limit. ETags
sparen vor allem Bandbreite und Verarbeitung; sie ersetzen keine vernünftige
Abruffrequenz.
Fehler dürfen den Cache nicht leeren#
Bei Netzwerkfehlern, 5xx-Antworten, 429 rate_limited oder unlesbarem JSON
bleibt die zuletzt erfolgreich geprüfte lokale Antwort erhalten. Nur eine
gültige 200-Antwort darf sie ersetzen. Ein 304 bestätigt lediglich den
vorhandenen Stand.
Für die Behandlung entfernten Inhalts gelten zusätzlich die Regeln aus Einen zuverlässigen Feed-Abgleich entwickeln.
Frage nicht beantwortet? Schreib uns — wir ergänzen die Seite.