Monitore o uso da sua chave antes de atingir um limite
Acompanhar seus cabeçalhos de cota ao longo do caminho mostra quando um limite está se aproximando, bem antes de uma requisição ser realmente rejeitada.
Uma requisição que retorna com sucesso, mas sem nenhum resultado útil, é fácil de tratar de forma errada, porque não parece uma falha no nível do HTTP; ela apenas não traz a resposta que você esperava.
Uma busca de geocodificação direta por algo vago demais ou totalmente fictício retorna o status 200 com um array de resultados vazio, e não um código de erro.
GET /v1/forward?q=xyzzy nonexistent place&limit=1{
"status": "ok",
"query": "xyzzy nonexistent place",
"results": []
}Uma consulta de IP para um endereço em uma faixa não alocada ou privada retorna found: false em vez de um erro, junto com os campos que ainda for possível preencher.
{
"status": "ok",
"ip": "10.0.0.5",
"version": 4,
"found": false
}Verifique se há um array de resultados vazio, ou found: false, como uma ramificação própria no seu código, separada tanto do caminho de sucesso quanto do tratamento de erros para respostas 4xx e 5xx. Decida de forma deliberada o que acontece em seguida: pedir que o usuário refine a entrada, recorrer a uma busca mais ampla com um limite maior ou mostrar uma mensagem clara de "local não encontrado", em vez de um espaço em branco ou de um valor padrão enganoso.
Um lugar que realmente não existe é uma das causas, mas uma string de entrada mal formatada, um erro de digitação ou uma consulta que misturou idiomas ou alfabetos de forma inesperada também podem produzir um resultado vazio para um endereço que existe de fato. Antes de presumir que o local em si não existe, considere se normalizar a entrada ou tentar uma versão com o parâmetro countries definido resolveria o problema.
Acompanhe com que frequência a sua integração cai no caminho de resultado vazio, separadamente da sua taxa de erros. Um aumento na taxa de resultados vazios costuma indicar um problema de qualidade de dados na origem, na forma como os endereços são coletados ou formatados, e não algo errado com a consulta em si.
Um resultado vazio ainda custa uma requisição, igual a uma correspondência bem-sucedida, já que a consulta foi realizada de qualquer forma. Não existe uma tarifa com desconto para uma consulta que volta vazia.
Tratar um resultado vazio como um desfecho próprio e deliberado, e não como um detalhe acrescentado ao tratamento de erros, torna uma integração visivelmente mais sólida. A página de erros cobre as respostas de erro propriamente ditas, enquanto os resultados vazios estão documentados junto com o formato de resposta normal de cada endpoint, como na documentação de geocodificação direta.