A API Isochrones retorna erros usando o formato JSON padrão do Google Cloud
google.rpc.Status:
{
"error": {
"code": 400,
"message": "Violation in GenerateIsochroneRequest.travel_duration: travel_duration must be at least 1 second and not exceed 3600 seconds (60 minutes) for DRIVE or TWO_WHEELER mode or 7200 seconds (120 minutes) for other modes",
"status": "INVALID_ARGUMENT"
}
}
Use o campo status (ou HTTP code) para processar erros de maneira programática. O texto
message é destinado a desenvolvedores e pode mudar. Por isso, não o analise.
Ao trabalhar com a API Isochrones, você pode encontrar os seguintes códigos de status de erro comuns:
400 INVALID_ARGUMENT: a solicitação contém parâmetros inválidos ou sintaxe incorreta:- Limites de duração: verifique se
travelDurationé pelo menos"1s", termina com"s"(como"1800s") e não excede o limite do modo:3600s(60 minutos) paraDRIVEeTWO_WHEELERou7200s(120 minutos) paraWALKeBICYCLE. Zero ("0s"), valores negativos e valores inferiores a 1 segundo (como"0.5s") são rejeitados. - Preferência de tráfego: verifique se
routingPreferencenão está definido comoTRAFFIC_AWAREquandotravelModeéWALKouBICYCLE. O tráfego em tempo real só é compatível comDRIVEeTWO_WHEELER. - Tipos enumerados obrigatórios: verifique se
travelModeetravelDirection(FROMouTO) estão especificados e não estão definidos como*_UNSPECIFIED. - Coordenadas de origem (
location): definalatitude(em[-90, 90]) elongitude(em[-180, 180]). Um campo omitido é tratado como0sem um erro: omitir ambos resulta em(0, 0), que é rejeitado; omitir apenaslatitudecoloca a origem no equador; e omitir apenaslongitudea coloca no meridiano principal. - Formato do ID de lugar (
place): verifique seplaceé um ID de lugar ou um nome de recursoplaces/{place_id}(por exemplo,"places/ChIJIQBpAG2ahYAR_6128GcTUEo"), sem segmentos de caminho extras, e se refere a um ID de lugar válido. - Máscara de campo (
X-Goog-FieldMask): se fornecido, o cabeçalho precisa fazer referência a caminhos de resposta válidos, comoisochrone,isochrone.geoJsonou*. - Chave de API inválida (
API_KEY_INVALID): uma chave de API malformada ou não reconhecida emX-Goog-Api-Keyou?key=retorna400 INVALID_ARGUMENTcom o motivoAPI_KEY_INVALID.
- Limites de duração: verifique se
403 PERMISSION_DENIED: falha na autenticação ou autorização:- Nenhuma credencial de autenticação (token
X-Goog-Api-Key,?key=ouAuthorization: Bearer) foi fornecida na solicitação. - A API Isochrones (
isochrones.googleapis.com) não está ativada no seu projeto na nuvem do Google Cloud ou o faturamento não está ativado. - Sua chave de API tem restrições de destino de API, endereço IP ou referenciador HTTP que bloqueiam solicitações para
isochrones.googleapis.com.
- Nenhuma credencial de autenticação (token
404 NOT_FOUND: não foi possível resolver ou ajustar a origem à rede de vias:- Não foi possível resolver o
placepara um local. Verifique se o ID de lugar é válido e atual. - O centroide de origem
locationouplaceestá mais distante de um segmento de via compatível com o modo do que a distância máxima de ajuste (cerca de 200 metros ou menos paraWALKeBICYCLE). Mova a coordenada para mais perto de uma via pública ou transmita coordenadas de entrada de via em vez de um ID de lugar de um grande parque ou ponto de referência. - A coordenada está em uma área sem dados de vias (como o oceano aberto).
- Não foi possível resolver o
429 RESOURCE_EXHAUSTED: seu projeto excedeu o limite de cota por minuto (padrão de 300 solicitações por minuto):{ "error": { "code": 429, "message": "Quota exceeded for quota metric 'Requests' and limit 'Requests per minute' of service 'isochrones.googleapis.com'.", "status": "RESOURCE_EXHAUSTED" } }Limite as taxas de solicitação do cliente e tente novamente as respostas
429usando a espera exponencial com instabilidade aleatória.503 UNAVAILABLE: o serviço está temporariamente indisponível ou sobrecarregado. Tente fazer a solicitação outra vez usando a espera exponencial.500 INTERNAL: ocorreu um erro interno do servidor, como um tempo limite de back-end. Tente fazer a solicitação outra vez usando a espera exponencial.