Gegenwärtig bietet Zendesk für fast alle aktuellen REST-API-Endpunkte eine Offset-basierte Paginierung. Während dies für die meisten Anwendungsfälle in kleinem Umfang ausreicht (z. B. Anfragen, die nicht mehr als 10 Seiten Daten umfassen), belastet es die Infrastruktur exponentiell, wenn es in großem Umfang mit hohem Seiten-Offset verwendet wird. Diese Anfragen mit hohem Offset führen zu langen Antwortzeiten und schlechter Leistung, da für jede neue angeforderte Seite zuerst alle vorherigen Seiten zusammengestellt werden müssen.
Um unseren Kunden ein besseres Entwicklererlebnis und eine höhere Leistung zu bieten, werden wir in Kürze in erster Linie auf die Cursor-basierte Paginierung umstellen und Beschränkungen für sehr hohe Seiten-Offset-Anforderungen implementieren.
- Was ist Cursor-basierte Paginierung?
- Wie und warum nehmen wir diese Änderungen vor?
- Beschränkungen für die Offset-basierte Paginierung
- Wie kann ich mit der Implementierung dieser Änderungen beginnen?
- Welche Endpunkte werden unterstützt?
Was ist Cursor-basierte Paginierung?
Bei der Cursor-basierten Paginierung wird ein Zeiger auf ein bestimmtes Element in einem Dataset verwendet, um den Fortschritt zu markieren. Im Wesentlichen fungiert dies als eine Art Lesezeichen, mit dem Sie den nächsten Batch von Elementen im Dataset anfordern können, indem Sie den Cursor auf nachfolgenden Anfragen setzen. Anstatt die nächste Seite aufzurufen, um die Elemente zu durchlaufen, verwenden Sie den Cursor, der in der vorherigen Antwort angegeben wurde. Dies hat den Vorteil, dass bei großen Volumen schneller Ergebnisse erzielt werden.
Wie und warum nehmen wir diese Änderungen vor?
In naher Zukunft wird Zendesk Änderungen vornehmen, um die API-Nutzung in großem Umfang zu verbessern. Dazu gehört, die Cursor-basierte Paginierung überall verfügbar zu machen, beginnend mit unserem Benutzer-, Ticket- und Stichwörter, bevor die meisten unserer Endpunkte im Jahr 2021 hinzugefügt werden.
Die auf Offset basierende Paginierung wird auch weiterhin mit stark eingeschränktem Umfang und Umfang angeboten. Dazu gehört auch, sehr hohe Offset-Anfragen (Anfragen über 1.000 Seiten) zu begrenzen, die eine Reihe von Ergebnissen haben – vor allem positiv – wenn Sie viel von unseren APIs konsumieren.
Die Cursor-basierte Paginierung bietet folgende Vorteile:
- Anfragen treten nicht mehr unter den extrem langen Timeouts auf, die bei Anfragen mit sehr hohen Seitenzahlen auftreten. Dies führt zu einer schnelleren Leistung für fast alle Integrationen, die das Durcharbeiten ganzer Ressourcengruppen Seite für Seite erfordern.
- Anfragen, die die Cursor-basierte Paginierung verwenden, stellen nicht mehr das Risiko für die Infrastruktur dar, das eine starke Seiten-Offset-basierte Paginierung darstellt, von Dienstausfällen bis hin zu Vorfällen aufgrund von Infrastrukturbelastung.
- Bei Integrationen, die eine Offset-basierte Paginierung verwenden, um einen ganzen Satz von Ressourcen zu exportieren, ist der Umstieg auf die Cursor-basierte Paginierung relativ einfach und erfordert nur minimale Nacharbeiten, um die Integrationen für die Umstellung vorzubereiten. Anstatt a „next_page“ verwendet werden, kann die Integration den Cursor -Parameter für eine neue Seite verwenden.
Einen detaillierteren Vergleich finden Sie auf dieser Seite.
Beschränkungen für die Offset-basierte Paginierung
Zendesk möchte, dass der gesamte Datenverkehr, der die Cursor-basierte Paginierung verwenden kann, die Offset-basierte Paginierung ändert.
Um diese Umstellung zu fördern , führt Zendesk abdem 15. September 2021ein Ratenlimit für Anfragen ein, die 1.000Seiten ( Ressourcen). Bei Anfragen über 1.000 Seiten werden Konten auf 10 Anfragen pro Minute.
Dadurch werden Anfragen, die unsere Infrastruktur unverhältnismäßig stark belasten, verlangsamt (aber nicht gestoppt). Wenn eine Anfrage über 1.000 Seiten schneller als 10 Mal pro Minute eingereicht wird, erfolgt eine 429-Antwort und die Anfrage muss später erneut versucht werden. Die Fehlermeldung gibt auch an, wie viel Zeit Benutzer noch haben, bevor sie ihre nächste Anfrage einreichen und die Suche fortsetzen können.
Anfragen mit Cursor-basierter Paginierung haben kein ähnliches Limit und werden schneller ausgeführt als Anfragen mit hohem Seiten-Offset.
Wie kann ich mit der Implementierung dieser Änderungen beginnen?
Wir empfehlen, auf die Cursor-basierte Paginierung umzusteigen. so bald wie möglich. Weitere Informationen finden Sie unter Paginieren von Listen mithilfe der Cursor-basierten Paginierung. Nachdem Sie die Gelegenheit hatten, die Änderungen zu betrachten und sie intern zu besprechen, bitten wir Sie, einige Punkte zu überprüfen:
- Sorgen Sie dafür, dass Integrationen, die weiterhin die Offset-basierte Paginierung verwenden, unsere Limits einhalten.
- Überprüfen Sie alle Teile Ihrer Integrationen, die die API verwenden, um alle verfügbaren Daten zu sammeln, oder melden Sie einfach Änderungen. Diese sind in der Regel ideale Kandidaten für Data Warehousing.
- Wenn Sie den Endpunkt zum Scrapieren aller verfügbaren Daten verwenden, sollten Sie mit der Umstellung auf die Cursor-basierte Paginierung beginnen.
- Wenn Sie die API verwenden, um Berichte über tägliche Änderungen zu erstellen, sollten Sie mit der Verwendung unserer inkrementellen APIsbeginnen, der eine große Menge relevanter Daten für diesen Anwendungsfall zulassen würde. Wenn Sie die Cursor-basierte Paginierung für den ersten Export verwenden und dann zur Erfassung von Änderungen auf die inkrementelle API wechseln, können Sie die Anzahl der Aufrufe, die zum Erfassen relevanter Daten erforderlich sind, erheblich reduzieren.
- Wenn Anfragen an mehrere Seiten parallel gesendet werden, sollten Sie die obige inkrementelle Option in Betracht ziehen, da eine parallele Paginierung nicht unterstützt wird und unsere Infrastruktur stark belastet.
Welche Endpunkte werden unterstützt?
Eine Liste der Endpunkte, die Cursor-Seiten-Paginierung unterstützen, finden Sie unter Endpunkte mit CBP-Funktion in der Ankündigung zu Offset-basierten Paginierungslimits.
Wenn Sie nach der Durchsicht weitere Fragen oder Bedenken haben, besprechen wir diese gerne mit Ihnen und Ihren Engineering- und Integrationsteams.
Vielen Dank, dass Sie sich die Zeit genommen haben, diese Punkte durchzugehen. Wir freuen uns darauf, bald mit Ihnen zusammen bessere, schnellere und skalierbarere Tools zu entwickeln, mit denen Sie Ihre Kunden noch besser betreuen können.
Hinweis zur Übersetzung: Dieser Beitrag wurde mit automatischer Übersetzungssoftware übersetzt, um dem Leser ein grundlegendes Verständnis des Inhalts zu vermitteln. Trotz angemessener Bemühungen, eine akkurate Übersetzung bereitzustellen, kann Zendesk keine Garantie für die Genauigkeit übernehmen.
Sollten in Bezug auf die Genauigkeit der Informationen im übersetzten Beitrag Fragen auftreten, beziehen Sie sich bitte auf die englische Version des Beitrags, die als offizielle Version gilt.