Post ensinando a como consultar o endereço completo pelo CEP, utilizando web services gratuitos que permitem uma fácil integração.
O que é um CEP?
CEP significa Código de Endereçamento Postal, sendo um conjunto numérico de oito dígitos, seu principal objetivo é orientar o encaminhamento de objetos postados nos Correios.
Teoricamente cada rua deveria ter um CEP, porém em cidades menores infelizmente essa realidade passa bem longe.
Vamos para o web service.
Um serviço gratuito que venho utilizando em alguns do meus projetos é o ViaCep.com.br
ViaCep – endereço completo pelo CEP do Brasil
Ele tem um tempo de resposta muito bom, estável e para utilizar o seu serviço basta fazer uma requisição para URL: viacep.com.br/ws/01001000/json/
Repare no CEP 01001000 e o formato desejado json na URL.
Além de json é possível consultar outros formatos como “xml”, “piped” ou “querty”.
Acesse https://viacep.com.br/ para saber mais.
Fazendo a integração utilizando apenas Javascript
Utilizando Javascript, vamos fazer uma requisição GET a URL do Viacep, passando os parâmetros desejados (CEP e Formato) embutidos na URL.
A função que iremos utilizar para requisição:
function httpGet(theUrl) { var xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", theUrl, false ); xmlHttp.send( null ); return xmlHttp.responseText; }
Segundo passo, o campo.
<input type="text" onblur="preparar_cep(this.value);"> <span id="resultado"></span>
Observação: o evento “onblur” ocorre quando o campo perde o foco.
E também a função auxiliar que está no evento onblur do nosso campo.
function preparar_cep(val){ /* Faço uma validação bem rápida para saber se realmente é um cep */ if( isNaN(val) ){ alert("cep inválido"); return false; } if( val.length != 8 ) alert("cep inválido"); return false; } resultado = httpGet('https://viacep.com.br/ws/'+ val +'/json/'); document.getElementById('resultado').innerHTML = resultado; }
Vamos testar o exemplo?
Digite um CEP válido no campo abaixo:
Resultado:
Bem simples não é?
Por ser uma simples consulta GET, facilmente você irá conseguir integrar sua aplicação com esse serviço.
Por ser um serviço gratuito e sem garantias de funcionamento é importante que você desenvolva um “fallback” para sua consulta, assim caro ocorra algum problema sua aplicação não ficará na mão.
Caso você queira apreender a fazer consultas GET com PHP, clique neste post: cURL ou file_get_contents, utilizando os dois métodos no PHP