Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

데이터 속도 제한

우리는 개발자가 매력적인 사용자 경험을 만들기를 원하지만 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로 되돌려 야합니다.

속도 제한 변경

사용 패턴과 서비스에 미치는 영향에 대해 자세히 알아 가면서 속도 제한을 수정해야 할 수도 있습니다. 매력적인 사용자 경험을 구축하고 속도 제한 위반을 적절하게 처리하는 데 필요한 최소 호출 수를 사용하도록 제품을 구축하는 것이 좋습니다.