/changes ab, welche Tabellen seit deinem letzten Lauf neu geladen wurden, und rufe genau diese Tabellen erneut ab — vollständig.
1
Die neu geladenen Tabellen finden
Rufe Tabellen, die in der Antwort fehlen, wurden nicht neu geladen. Überspringe sie.
/changes mit dem since-Wert aus deinem letzten Lauf auf. Nimm dafür das höchste last_sync_at aus der Antwort dieses Laufs; beim allerersten Lauf einen Zeitstempel bis zu 120 Tage zurück. Jeder Eintrag einer Category-Tabelle enthält category und api_table_name; abgerufen wird sie unter /v1/{category}/{api_table_name}.2
Jede geänderte Tabelle vollständig abrufen
Rufe die erste Seite ohne
cursor ab. Die Zeilen stehen in data; next_cursor im Response-Body verweist auf die nächste Seite. Übergib ihn unverändert als cursor-Parameter und wiederhole das, bis next_cursor null ist. Der Cursor dient nur zum Blättern innerhalb eines einzelnen Laufs.3
Die lokale Tabelle ersetzen
Sind alle Seiten da, ersetze deine lokale Kopie dieser Tabelle, statt anzuhängen. So verschwinden auch gelöschte Zeilen. Speichere dann das höchste
last_sync_at als since-Wert für den nächsten Lauf.4
Vollständiges Python-Beispiel
Ein vollständiges Skript, das jede Tabelle erneut abruft, die seit dem letzten Lauf neu geladen wurde. Erfordert das Paket
requests.sync_changed_tables.py