Google is committed to advancing racial equity for Black communities. See how.

Limity szybkości transmisji danych

Chcemy, aby programiści tworzyli atrakcyjne wrażenia dla użytkowników, ale chcemy również, aby usługa i urządzenia Nest były zawsze dostępne dla użytkownika. Produkty, które wysyłają dużą liczbę żądań w danym okresie, mogą mieć wpływ na dostępność usług i urządzeń, dlatego stosujemy limity stawek. Ograniczenie szybkości ogranicza liczbę wywołań interfejsu API w danym okresie.

Rodzaje limitów stawek

Wdrożyliśmy dwie klasy limitów stawek. Pierwsze ograniczenia odnoszą się do urządzenia lub konstrukcji na godzinę. Limity te są wspólne dla wszystkich produktów Works with Nest i mają na celu zapobieganie nadmiernemu wykorzystaniu urządzeń. Druga klasa limity odnoszą token dostępu. Limity te mają na celu zapobieganie nadmiernemu wykorzystaniu usługi Nest.

Limity na urządzenie/strukturę

Każdy zapis do modelu danych wymaga wybudzenia urządzenia i zsynchronizowania stanu. Może to mieć wpływ na żywotność baterii, dlatego ograniczamy liczbę zapisów do urządzeń i struktur. Monitorujemy również stan baterii wszystkich urządzeń. Jeśli spadną poniżej określonego progu, odrzucimy żądania zapisu do czasu ponownego naładowania baterii.

Limity tokenów dostępu

Każdy token dostępu ma również powiązany limit szybkości. Nawiązywanie połączeń z usługą wiąże się z pewnym obciążeniem, dlatego ograniczamy liczbę połączeń, które produkt może wykonać w określonym przedziale czasu.

W przypadku wywołań strumieniowych REST i REST każdy token dostępu ma ograniczoną liczbę wywołań. Limity szybkości transmisji danych dotyczą połączeń odczytu/zapisu za pośrednictwem REST oraz połączeń odczytu za pośrednictwem przesyłania strumieniowego REST. Aby uniknąć błędów, zalecamy ograniczenie żądań do jednego połączenia na minutę, maksymalnie.

Odpowiedź na błąd

Podczas korzystania REST otrzymasz kod odpowiedzi z 429 zbyt wiele żądań.

Obsługa przekierowań 307

Dokonując REST połączeń, produkt będzie musiał obsłużyć 307 przekierowań. Znana również jako przekazywanie adresu URL, odpowiedź tymczasowego przekierowania 307 zapewnia nowy adres URL dla przeglądarki w celu ponownego przesłania żądania.

Gdy nastąpi przekierowanie 307, musisz ponownie wykonać połączenie z nowymi informacjami o adresie URL. Gdy to zrobisz, powinieneś buforować numer hosta i numer portu do użycia w przyszłych wywołaniach z tym tokenem użytkownika/dostępu. Pamiętaj, że każde połączenie wlicza się do limitu stawki. Zastanów się, jak Twój użytkownik wchodzi w interakcję z Twoim produktem. Niektórzy użytkownicy naciskają przycisk lub wybierają ustawienie wielokrotnie, więc jeśli wykonasz połączenie dla każdego działania użytkownika, może to bardzo szybko wpłynąć na limity częstotliwości. Jeśli użytkownik wprowadzi serię zmian w szybkich odstępach czasu, należy wywołać API tylko dla ostatniej (najnowszej) wartości.

Aby uzyskać więcej informacji oraz przykład zobaczyć , jak obchodzić przekierowań .

Po przekierowaniu 307

Jeśli używasz informacji o adresie URL przekierowania i otrzymasz przekierowanie 307 w późniejszym czasie, powinieneś skorzystać z tego przekierowania.

Błąd połączenia

Jeśli korzystasz z informacji o adresie URL z pamięci podręcznej i otrzymujesz błąd połączenia (z powodu awarii hosta lub awarii witryny), należy przywrócić pierwotny podstawowy adres URL.

Zmiany limitu szybkości

Gdy dowiadujemy się więcej o wzorcach użytkowania i ich wpływie na usługę, może okazać się konieczne zmodyfikowanie limitów stawek. Gorąco zachęcamy do tworzenia produktów tak, aby korzystały z minimalnej liczby połączeń wymaganych do stworzenia atrakcyjnego środowiska użytkownika oraz do odpowiedniego radzenia sobie z naruszeniami limitów stawek.