Deseamos que los desarrolladores creen experiencias del usuario atractivas, pero también queremos que el servicio y los dispositivos Nest estén siempre disponibles para los usuarios. Los productos que realizan una gran cantidad de solicitudes en un período determinado pueden afectar la disponibilidad del dispositivo y del servicio, por lo que aplicamos límites de frecuencia. El límite de frecuencia restringe la cantidad de llamadas a la API durante un período determinado.
Tipos de límites de frecuencia
Implementamos dos clases de límites de frecuencia. Los primeros límites se realizan por dispositivo o estructura por hora. Estos límites se comparten entre todos los productos Works with Nest y están destinados a evitar el uso excesivo de los dispositivos. La segunda clase de límites son por token de acceso. Estos límites están diseñados para prevenir el uso excesivo del servicio de Nest.
Límites por dispositivo o estructura
Cada escritura en el modelo de datos requiere que el dispositivo se active y sincronice el estado. Esto puede afectar la duración de batería, por lo que limitamos la cantidad de operaciones de escritura en dispositivos y estructuras. También supervisamos el estado de la batería de todos los dispositivos. Si caen por debajo de un umbral determinado, rechazaremos las solicitudes de escritura hasta que se recargue la batería.
Límites de tokens por acceso
Cada token de acceso también tiene un límite de frecuencia asociado. Establecer conexiones al servicio genera cierta sobrecarga, por lo que limitamos la cantidad de conexiones que puede hacer un producto en un período específico.
En el caso de las llamadas de transmisión de REST y REST, cada token de acceso tiene una cantidad limitada de llamadas. Se aplican límites de frecuencia de datos a las llamadas de lectura y escritura a través de REST y a las llamadas de lectura a través de la transmisión de REST. Para evitar errores, te recomendamos limitar las solicitudes a una llamada por minuto, como máximo.
Respuesta de error
Cuando uses REST, recibirás un código de respuesta de 429 Demasiadas solicitudes.
Cómo controlar redireccionamientos 307
Cuando realices llamadas REST, el producto deberá controlar los redireccionamientos 307. La respuesta de redireccionamiento temporal 307, también conocida como reenvío de URL, proporciona una URL nueva para que el navegador vuelva a enviar una solicitud.
Cuando se produzca un redireccionamiento 307, tendrás que volver a realizar la llamada con la información de la URL nueva. Cuando lo hagas, debes almacenar en caché el número de puerto y host para usarlo en llamadas futuras con ese token de usuario o acceso. Recuerda que cada llamada se tiene en cuenta para el límite de frecuencia. Considere cómo interactúa el usuario con su producto. Algunos usuarios presionarán un botón o elegirán un parámetro de configuración de forma repetida, por lo que, si realizas una llamada para cada acción del usuario, esto puede afectar los límites de frecuencia muy rápido. Si un usuario realiza una serie de cambios en una sucesión rápida, solo debes hacer una llamada a la API para el último valor (más reciente).
Para obtener más información y ver un ejemplo, consulta Cómo controlar los redireccionamientos.
Redireccionamiento después de 307
Si usas la información de la URL de redireccionamiento y obtienes un redireccionamiento 307 más adelante, debes seguir ese redireccionamiento.
Error de conexión
Si usas la información de la URL almacenada en caché y se muestra un error de conexión (debido a que el host está fuera de servicio o el sitio no funciona), debes volver a la URL base original.
Cambios en el límite de frecuencia
A medida que aprendemos más sobre los patrones de uso y su impacto en el servicio, puede que nos resulte necesario modificar los límites de frecuencia. Te recomendamos que compiles tus productos a fin de usar la cantidad mínima de llamadas necesarias para crear una experiencia del usuario atractiva y abordar de manera adecuada los incumplimientos del límite de frecuencia.