Notice: We're retiring Works with Nest. See the home page for more information.
Google is committed to advancing racial equity for Black communities. See how.
このページは Cloud Translation API によって翻訳されました。
Switch to English

データレート制限

開発者には説得力のあるユーザーエクスペリエンスを作成してもらいたいですが、Nestサービスとデバイスを常にユーザーが利用できるようにしたいと考えています。一定期間に多数のリクエストを行う製品は、サービスとデバイスの可用性に影響を与える可能性があるため、レート制限を適用します。レート制限は、一定期間のAPI呼び出しの数を制限します。

レート制限のタイプ

2つのクラスのレート制限を実装しました。最初の制限は、1時間あたりのデバイスまたは構造ごとです。これらの制限はすべてのWorks with Nest製品で共有されており、デバイスの過剰使用を防止することを目的としています。 2番目のクラスの制限は、アクセストークンごとです 。これらの制限は、Nestサービスの過剰利用を防ぐために設計されています。

デバイス/構造ごとの制限

データモデルへの書き込みごとに、デバイスがウェイクアップして状態を同期する必要があります。これはバッテリーの寿命に影響を与える可能性があるため、デバイスと構造への書き込み数を制限します。すべてのデバイスのバッテリー状態も監視します。一定のしきい値を下回ると、バッテリーが再充電されるまで書き込み要求を拒否します。

アクセストークンごとの制限

各アクセストークンには、レート制限も関連付けられています。サービスへの接続を確立するとある程度のオーバーヘッドが発生するため、特定の期間に製品が作成できる接続の数を制限します。

RESTおよびRESTストリーミング呼び出しの場合、各アクセストークンの呼び出し数には制限があります。データレート制限は、RESTを介した読み取り/書き込み呼び出し、およびRESTストリーミングを介した読み取り呼び出しに適用されます。エラーを回避するには、リクエストを1分あたり最大1回の呼び出しに制限することをお勧めします。

エラー応答

RESTを使用すると、429 Too Many Requestsという応答コードが返されます。

307リダイレクトの処理

REST呼び出しを行う場合、製品は307リダイレクトを処理する必要があります。 URL転送とも呼ばれる307一時リダイレクトレスポンスは、ブラウザがリクエストを再送信するための新しいURLを提供します。

307リダイレクトが発生した場合は、新しいURL情報を使用してもう一度呼び出す必要があります。これを行うときは、そのユーザー/アクセストークンを使用して今後の呼び出しで使用するために、ホストとポート番号をキャッシュする必要があります。覚えておいてください、各呼び出しはレート制限にカウントされます。ユーザーが製品をどのように操作しているかを検討します。一部のユーザーはボタンを押すか設定を繰り返し選択するため、すべてのユーザーアクションを呼び出すと、レート制限に非常に早く影響する可能性があります。ユーザーが連続して一連の変更をすばやく行う場合は、最後(最新)の値に対してのみAPI呼び出しを行う必要があります。

詳細と例については、 How to Handle Redirectsを参照してください。

307リダイレクト後

リダイレクトURL情報を使用していて、後で307リダイレクトを取得する場合は、そのリダイレクトに従う必要があります。

接続エラー

キャッシュされたURL情報を使用していて、(ホストのサービス停止またはサイトのダウンのため)接続エラーが発生した場合は、元のベースURLに戻す必要があります。

レート制限の変更

使用パターンとそのサービスへの影響についてさらに学習すると、レート制限の変更が必要になる場合があります。魅力的なユーザーエクスペリエンスを構築するために必要な最小限の呼び出しを使用し、レート制限違反に適切に対処するように製品を構築することを強くお勧めします。