Queremos que os desenvolvedores criem experiências interessantes para os usuários, mas também que os serviços e dispositivos Nest estejam sempre disponíveis para o usuário. Os produtos que fazem um grande número de solicitações em um determinado período podem afetar a disponibilidade do serviço e do dispositivo. Portanto, aplicamos limites de taxa. A limitação de taxa restringe o número de chamadas de API para um determinado período.
Tipos de limites de taxa
Implementamos duas classes de limites de taxa. Os primeiros limites são por dispositivo ou estrutura por hora. Esses limites são compartilhados entre todos os produtos Works with Nest e têm como objetivo evitar o uso excessivo de dispositivos. A segunda classe de limites é por token de acesso. Esses limites são projetados para evitar a superutilização do serviço Nest.
Limites por dispositivo/estrutura
Cada gravação no modelo de dados exige que o dispositivo ative e sincronize o estado. Isso pode afetar a duração da bateria. Portanto, limitamos o número de gravações a dispositivos e estruturas. Também monitoramos o estado da bateria de todos os dispositivos. Se eles ficarem abaixo de um determinado limite, rejeitaremos as solicitações de gravação até que a bateria seja recarregada.
Limites de tokens por acesso
Cada token de acesso também tem um limite de taxa associado. Estabelecer conexões com o serviço gera algumas despesas gerais. Portanto, limitamos o número de conexões que um produto pode fazer em um período específico.
Para chamadas de streaming REST e REST, cada token de acesso tem um número limitado de chamadas. Os limites de taxa de dados se aplicam a chamadas de leitura/gravação via REST e a chamadas de leitura por streaming REST. Para evitar erros, recomendamos limitar as solicitações a uma chamada por minuto, no máximo.
Resposta de erro
Ao usar REST (link em inglês), você receberá um código de resposta de 429 solicitações em excesso.
Como gerenciar redirecionamentos 307
Ao fazer chamadas REST, seu produto precisará processar redirecionamentos 307. Também conhecida como encaminhamento de URL, uma resposta de redirecionamento temporário 307 fornece um novo URL para o navegador reenviar uma solicitação.
Quando um redirecionamento 307 acontece, você precisa fazer a chamada novamente com as novas informações de URL. Ao fazer isso, armazene em cache o host e o número da porta para uso em chamadas futuras com esse token de usuário/acesso. Lembre-se de que cada chamada é contabilizada no limite de taxa. Pense em como os usuários interagem com seu produto. Alguns usuários pressionam um botão ou escolhem a configuração repetidamente. Portanto, se você fizer uma chamada para cada ação do usuário, isso poderá afetar os limites de taxa muito rapidamente. Se um usuário fizer uma série de alterações em rápida sucessão, faça uma chamada de API somente para o último valor (mais recente).
Para mais informações e um exemplo, consulte Como processar redirecionamentos.
Após o redirecionamento 307
Se estiver usando as informações do URL de redirecionamento e receber um redirecionamento 307 depois, você deverá seguir esse redirecionamento.
Erro de conexão
Se você estiver usando as informações do URL em cache e receber um erro de conexão (devido à hospedagem fora do serviço ou do site), reverta para o URL base original.
Alterações no limite de taxa
À medida que aprendemos mais sobre os padrões de uso e o impacto deles no serviço, achamos necessário modificar os limites de taxa. Recomendamos que você crie seus produtos usando o número mínimo de chamadas necessárias para criar uma experiência do usuário atraente e lidar com as violações de limite de taxa adequadamente.