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

데이터 속도 제한

Google은 개발자가 매력적인 사용자 환경을 조성하는 동시에 Nest 서비스 및 기기를 항상 사용자에게 제공할 수 있기를 바랍니다. 지정된 기간 동안 많은 요청을 하는 제품은 서비스 및 기기 가용성에 영향을 줄 수 있으므로 비율 한도를 적용합니다. 비율 제한은 지정된 기간 동안 API 호출 수를 제한합니다.

속도 제한의 종류

Google에서는 두 가지 유형의 비율 제한을 구현했습니다. 첫 번째 한도는 시간당 기기 또는 구조별입니다. 이 한도는 모든 Works with Nest 제품 간에 공유되며 기기의 과부하를 방지하기 위한 것입니다. 두 번째 제한사항은 액세스 토큰당입니다. 이러한 제한사항은 Nest 서비스의 과다한 사용을 방지하도록 설계되었습니다.

기기/구조당 한도

데이터 모델에 쓸 때마다 기기가 절전 모드를 해제하고 상태를 동기화해야 합니다. 배터리 수명에 영향을 줄 수 있으므로 기기 및 구조에 대한 쓰기 수가 제한됩니다. 모든 기기의 배터리 상태도 모니터링합니다. 특정 기준 아래로 떨어지면 배터리가 충전될 때까지 쓰기 요청이 거부됩니다.

액세스당 토큰 제한

각 액세스 토큰에도 연결된 비율 제한이 있습니다. 서비스에 연결을 설정하면 오버헤드가 발생하므로 특정 기간에 제품에 연결할 수 있는 횟수가 제한됩니다.

REST 및 REST 스트리밍 호출의 경우 각 액세스 토큰의 호출 수가 제한됩니다. 데이터 속도 제한은 REST를 통한 읽기/쓰기 호출과 REST 스트리밍을 통한 읽기 호출에 적용됩니다. 오류를 방지하려면 요청을 호출 수에 분당 최대 1개로 제한하는 것이 좋습니다.

오류 응답

REST를 사용하면 응답 코드가 429 너무 많은 요청을 받게 됩니다.

307 리디렉션 처리

REST를 호출할 때 제품은 307 리디렉션을 처리해야 합니다. URL 전달이라고도 하는 307 임시 리디렉션 응답은 브라우저에서 요청을 다시 제출할 수 있는 새 URL을 제공합니다.

307 리디렉션이 발생하면 새 URL 정보를 사용하여 다시 호출해야 합니다. 이렇게 할 경우, 해당 사용자/액세스 토큰으로 향후 호출에서 사용할 호스트와 포트 번호를 캐시해야 합니다. 각 호출은 비율 제한에 포함됩니다. 사용자가 제품과 어떻게 상호작용하는지 생각해 보세요. 일부 사용자는 버튼을 누르거나 설정을 반복적으로 선택하므로 모든 사용자 작업을 호출할 때 비율 제한에 매우 빠르게 영향을 줄 수 있습니다. 사용자가 연속해서 시리즈를 연달아 변경한 경우 (마지막 값) API 호출만 해야 합니다.

자세한 내용과 예는 리디렉션 처리 방법을 참고하세요.

307 리디렉션 후

리디렉션 URL 정보를 사용 중이고 나중에 307 리디렉션을 받은 경우 해당 리디렉션을 따라야 합니다.

연결 오류

캐시된 URL 정보를 사용 중이며 서비스 호스트나 사이트가 다운되어 연결 오류가 발생하는 경우 원래 기본 URL로 되돌려야 합니다.

비율 제한 변경

사용 패턴 및 서비스가 서비스에 미치는 영향을 자세히 살펴보면 비율 한도를 수정해야 할 수도 있습니다. 매력적인 사용자 환경을 빌드하는 데 필요한 최소 호출 수를 사용하고 적절한 비율 제한 위반을 처리하도록 제품을 빌드하는 것이 좋습니다.