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

Пределы скорости передачи данных

Мы хотим, чтобы разработчики создавали привлекательный пользовательский интерфейс, но мы также хотим, чтобы служба и устройства Nest всегда были доступны для пользователя. Продукты, которые делают большое количество запросов за определенный период времени, могут повлиять на доступность услуг и устройств, поэтому мы применяем ограничения скорости. Ограничение скорости ограничивает количество вызовов API за определенный период времени.

Типы лимитов ставок

Мы реализовали два класса ограничений скорости. Первые пределы для каждого устройства или структуры в час. Эти ограничения являются общими для всех продуктов Works with Nest и предназначены для предотвращения чрезмерного использования устройств. Второй класс ограничений указаны за маркер доступа. Эти ограничения предназначены для предотвращения чрезмерного использования службы Nest.

Ограничения на устройство / структуру

Каждая запись в модель данных требует, чтобы устройство просыпалось и синхронизировало состояние. Это может повлиять на срок службы батареи, поэтому мы ограничиваем количество операций записи в устройства и структуры. Также мы следим за состоянием батареек всех устройств. Если они упадут ниже определенного порога, мы отклоним запросы на запись до тех пор, пока батарея не зарядится.

Ограничения на токены доступа

У каждого токена доступа также есть связанный предел скорости. Установление подключений к сервису влечет за собой некоторые накладные расходы, поэтому мы ограничиваем количество подключений, которые продукт может установить за определенный период времени.

Для потоковых вызовов REST и REST каждый токен доступа имеет ограниченное количество вызовов. Ограничения скорости передачи данных применяются к вызовам чтения / записи через REST и к вызовам чтения через потоковую передачу REST. Чтобы избежать ошибок, мы рекомендуем ограничить количество запросов до одного звонка в минуту максимум.

Ответ об ошибке

При использовании REST вы получите код ответа 429 Слишком много запросов.

Обработка 307 редиректов

При выполнении REST вызовов, ваш продукт должен будет обрабатывать 307 редирект. Также известный как переадресация URL-адресов, ответ 307 Temporary Redirect предоставляет браузеру новый URL-адрес для повторной отправки запроса.

Когда происходит перенаправление 307, вам нужно будет снова позвонить с новой информацией URL. Когда вы это делаете, вы должны кэшировать хост и номер порта для использования в будущих вызовах с этим токеном пользователя / доступа. Помните, что каждый звонок засчитывается в лимит скорости. Подумайте, как ваш пользователь взаимодействует с вашим продуктом. Некоторые пользователи будут нажимать кнопку или выбирать настройку несколько раз, поэтому, если вы вызываете каждое действие пользователя, это может очень быстро повлиять на ограничения скорости. Если пользователь делает серию изменений в быстрой последовательности, вам следует выполнять вызов API только для последнего (самого последнего) значения.

Для получения более подробной информации и примеров, смотрите Как обрабатывать перенаправления .

После 307 редиректа

Если вы используете информацию об URL-адресе перенаправления и получаете перенаправление 307 позже, вам следует выполнить это перенаправление.

Ошибка соединения

Если вы используете кэшированную информацию об URL-адресе и получаете сообщение об ошибке подключения (из-за того, что хост не работает или сайт не работает), вам следует вернуться к исходному базовому URL-адресу.

Изменения лимита скорости

По мере того, как мы узнаем больше о моделях использования и их влиянии на службу, мы можем счесть необходимым изменить ограничения скорости. Мы настоятельно рекомендуем вам создавать свои продукты так, чтобы использовать минимальное количество вызовов, необходимое для создания привлекательного взаимодействия с пользователем, и надлежащим образом устранять нарушения ограничений скорости.