Ratenbegrenzungen für Daten

Wir möchten, dass Entwickler die Nutzerfreundlichkeit verbessern können, gleichzeitig sollen der Nest-Dienst und die Nest-Geräte jedoch für alle Nutzer verfügbar sein. Produkte, die innerhalb eines bestimmten Zeitraums sehr viele Anfragen senden, können sich auf die Dienst- und Geräteverfügbarkeit auswirken. Daher wenden wir Ratenbegrenzungen an. Die Ratenbegrenzung schränkt die Anzahl der API-Aufrufe für einen bestimmten Zeitraum ein.

Arten von Ratenbegrenzungen

Es wurden zwei Ratenbegrenzungen implementiert. Die ersten Limits gelten pro Gerät oder Struktur pro Stunde. Diese Limits gelten für alle Works with Nest-Produkte und sollen eine Überlastung von Geräten verhindern. Die zweite Klasse von Limits ist pro Zugriffstoken. Diese Grenzwerte sollen die Überlastung des Nest-Dienstes verhindern.

Beschränkungen pro Gerät und Struktur

Bei jedem Schreibvorgang in das Datenmodell muss das Gerät aktiviert und der Status synchronisiert werden. Das kann sich auf die Akkulaufzeit auswirken und begrenzt die Anzahl der Schreibvorgänge auf Geräte und Strukturen. Außerdem überwachen wir den Akkustatus aller Geräte. Wenn sie einen bestimmten Schwellenwert überschreiten, lehnen wir Schreibanfragen ab, bis der Akku geladen ist.

Limits pro Zugriffstoken

Jedes Zugriffstoken ist mit einer Ratenbegrenzung verknüpft. Der Aufbau von Verbindungen zum Dienst ist mit einem gewissen Aufwand verbunden. Daher beschränken wir die Anzahl der Verbindungen, die ein Produkt in einem bestimmten Zeitraum herstellen kann.

Bei REST- und REST-Streaming-Aufrufen hat jedes Zugriffstoken eine begrenzte Anzahl von Aufrufen. Limits für Datenraten gelten für Lese-/Schreibaufrufe über REST und für Leseaufrufe über REST-Streaming. Zur Vermeidung von Fehlern empfehlen wir, die Anfragen auf maximal einen Aufruf pro Minute zu beschränken.

Fehlerantwort

Wenn Sie REST verwenden, erhalten Sie den Antwortcode 429 Zu viele Anfragen.

307-Weiterleitungen verarbeiten

Bei REST-Aufrufen muss Ihr Produkt 307-Weiterleitungen verarbeiten können. Die 307-Antwort „Temporäre Weiterleitung“ wird auch als URL-Weiterleitung bezeichnet und enthält eine neue URL, damit der Browser eine Anfrage noch einmal senden kann.

Nach einer 307-Weiterleitung musst du den Aufruf mit den neuen URL-Informationen noch einmal starten. In diesem Fall sollten Sie die Host- und Portnummer im Cache speichern, um sie in zukünftigen Aufrufen mit diesem Nutzer-/Zugriffstoken zu verwenden. Jeder Aufruf wird auf die Ratenbegrenzung angerechnet. Überlegen Sie, wie die Nutzer mit Ihrem Produkt interagieren. Einige Nutzer drücken wiederholt eine Schaltfläche oder wählen eine Einstellung aus. Wenn Sie einen Aufruf für jede Nutzeraktion starten, kann sich dies sehr schnell auf die Ratenbegrenzung auswirken. Führt ein Nutzer eine Reihe von Änderungen in schneller Abfolge aus, sollte nur ein API-Aufruf für den letzten (letzten) Wert erfolgen.

Weitere Informationen und ein Beispiel finden Sie unter Umgang mit Weiterleitungen.

Nach der 307-Weiterleitung

Wenn du die Weiterleitungs-URL-Informationen verwendest und später eine 307-Weiterleitung erhältst, solltest du die Weiterleitung befolgen.

Verbindungsfehler

Wenn du die im Cache gespeicherten URL-Informationen verwendest und ein Verbindungsfehler auftritt (aufgrund eines Host- oder Dienstausfalls), solltest du die ursprüngliche Basis-URL wiederherstellen.

Änderungen der Ratenbegrenzung

Wenn wir mehr über Nutzungsmuster und ihre Auswirkungen auf den Dienst erfahren, benötigen wir unter Umständen Anpassungen der Ratenbegrenzung. Wir empfehlen Ihnen dringend, Ihre Produkte so zu gestalten, dass eine Mindestanzahl von Anrufen erforderlich ist, um eine überzeugende Nutzererfahrung zu bieten, und entsprechend mit Ratenbegrenzungen umzugehen.