エラーが発生すると、標準形式のエラー レスポンス本体が返され、HTTP ステータス コードにはエラー ステータスが設定されます。
レスポンスには、次のキーを持つ 1 つの error オブジェクトを含むオブジェクトが含まれています。
code: レスポンスの HTTP ステータスと同じものです。message: エラーの簡単な説明です。status: エラーの特性を示すステータス コードです。
たとえば、無効な placeId パラメータを送信すると、次のエラーが返されます。
{
"error": {
"code": 400,
"message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
"status": "INVALID_ARGUMENT"
}
}
発生する可能性があるエラーには、次のものがあります。
| コード | ステータス | メッセージ | トラブルシューティング |
|---|---|---|---|
| 400 | INVALID_ARGUMENT |
指定されたキーが無効です。 | API キーが有効でない、または API キーがリクエストに含まれていません。 キー全体を指定していること、またこのキーに対して API を有効にしていることを確認してください。 |
| 400 | INVALID_ARGUMENT |
"\"path\" パラメータに無効な値が含まれています: ☃" | リクエストに無効な引数が含まれています。 このエラーは、次のような原因で発生します。
存在しなくなった道路や道路以外の場所の |
| 403 | PERMISSION_DENIED |
未登録のリクエストがブロックされました。 Google Developers Console からサインアップしてください。 | API キーが有効でない、または API キーがリクエストに含まれていません。 キー全体を指定していること、またこのキーに対して API を有効にしていることを確認してください。 |
| 404 | NOT_FOUND |
このサービスには HTTPS が必須です。 | リクエストは、https://roads.googleapis.com/ に送信してください。http://roads.googleapis.com/次の形式は利用できません。 |
| 429 | RESOURCE_EXHAUSTED |
プロジェクトの QPS 制限に達したため、リクエストが制限されました。 | API Console で設定されている 1 秒および 1 ユーザーあたりのリクエストの上限数を超過しました。 この上限数は、すべてのユーザーに妥当な範囲でアクセスを許可しつつ、1 人または少数のユーザーが 1 日あたりの割り当て量を使い切ってしまうのを防ぐために設定されています。 |
| 429 | RESOURCE_EXHAUSTED |
1 日あたりの制限に達したため、リクエストが制限されました。 | プロジェクトの 1 日あたりの割り当てを超過しました。 |
指数関数的バックオフ
リクエストが失敗した場合、指数関数的バックオフでリクエストを再試行する必要があります。 たとえば、1 度リクエストが失敗した場合、1 秒後に再試行します。さらに失敗した場合、2 秒後、4 秒後というように再試行します。 すぐにリクエストを再試行しようとするクライアントが多いため、こうすることによって、不完全なリクエストや広範な障害で Google のサーバーが処理不能にならないようにすることができます。
