Guias

Configure uma alternativa para quando uma consulta não retorna resultado

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.

Como é um resultado vazio

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
}

Criar um caminho alternativo explícito

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.

Causas comuns que vale a pena verificar primeiro

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.

Registrar resultados vazios separadamente

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.

Custo de uma consulta sem resultado

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.