Zum Inhalt springen

Caching und ETags

API-Referenz · Zuletzt aktualisiert am 16.08.2026

Auf dieser Seite
  1. Bedingter Abruf
  2. ETag gehört zur vollständigen Abfrage
  3. Cache-Control nach Endpunkt
  4. Fehler dürfen den Cache nicht leeren

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.