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

데이터 속도 제한

우리는 개발자들이 매력적인 사용자 경험을 만들기를 원하지만 또한 사용자가 Nest 서비스와 기기를 항상 사용할 수 있기를 바랍니다. 일정 기간 동안 요청이 많은 제품은 서비스 및 장치 가용성에 영향을 줄 수 있으므로 요금 제한을 적용합니다. 속도 제한은 지정된 기간 동안 API 호출 수를 제한합니다.

속도 제한 유형

우리는 두 가지 등급의 속도 제한을 구현했습니다. 첫 번째 제한은 시간당 장치 또는 구조 단위이다. 이러한 제한은 모든 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로 되돌려야 합니다.

비율 제한 변경

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