1
Die erste Seite abrufen
Starte mit
limit=1000 und offset=0. Das Beispiel nutzt den Endpunkt /property/properties, aber das Muster funktioniert für jeden Category-Endpunkt.2
Die Pagination-Header prüfen
Prüfe nach jedem Request die Response-Header:
X-Has-More:"true", wenn weitere Seiten existierenX-Next-Offset: der Offset für die nächste Seite (nur vorhanden, wennX-Has-More"true"ist)X-Total-Count: Gesamtzahl der verfügbaren Zeilen für die aktuelle Abfrage
X-Has-More "true" ist, erhöhe den Offset um dein Limit und wiederhole den Vorgang, bis du das Ende erreichst.3
Den nächsten Offset für den nächsten Lauf speichern
Speichere den Wert von
X-Next-Offset aus dem letzten erfolgreichen Request dauerhaft. Beginne beim nächsten geplanten Sync bei diesem gespeicherten Offset statt bei null, um zu vermeiden, dass du Zeilen erneut abrufst, die du bereits hast.Endete der vorherige Lauf beispielsweise bei Offset 4000, beginnt dein nächster Lauf mit:4
Zurücksetzen bei größeren Datenänderungen
Wenn du eine Schema-Änderung, die Notwendigkeit eines vollständigen Neuladens oder eine große Lücke zwischen Syncs feststellst, setze deinen gespeicherten Offset auf
0 zurück und rufe den kompletten Datensatz erneut ab.5
Vollständiges Python-Beispiel
Ein vollständiges Skript, das jede Seite abruft und dabei von einem gespeicherten Offset aus fortsetzt. Erfordert das Paket
requests.sync_properties.py