Consulta de CEP com AJAX

Olá pessoal, hoje veremos algumas formas de consultar CEP por meio de AJAX. O que é algo muito útil em aplicações WEB, pois auxilia o usuário na digitação do endereço de cadastro. Para os exemplos aqui mostrados usaremos como base a seguinte página HTML:



	CEP
	


	
	
	

Os exemplos que seguirão deverão ter seu código inserido dentro da tag script. Pois usaremos o campo #cep e o botão #buscar para fazer a requisição.
 

Existem várias maneiras de se fazer isso, veja algumas delas:

DevMedia API

Para usar a API do DevMedia você precisa se cadastrar para gerar uma chave, mas não se preocupe o uso é grátis e ilimitado para consultas de CEP.

As requisições devem ser feitas com o método GET para o endereço http://www.devmedia.com.br/api/cep/service/, passando como parâmetro cep, chave e opcionalmente o formato, com os nomes assim como estão em negrito. Veja um exemplo:

$('#buscar').click(function(){
	$.ajax({
		url:'http://www.devmedia.com.br/api/cep/service/',
		type:'get',
		dataType:'json',
		crossDomain: true,
		data:{
			cep: $('#cep').val(), //pega valor do campo
			formato:'json',
			chave: 'SUA CHAVE'
		},
		success: function(res){
			$('#resultado').append('RUA'+res.logradouro)
				.append('BAIRRO'+res.bairro)
				.append('CIDADE'+res.cidade+ ' - '+res.uf);
		}
	})
});

Pesquisando pelo CEP 63047-310, ele retornou o seguinte resultado:

{
	"resultado_txt":"sucesso",
	"usuario":{
		"login":"loginusuario",
		"nome":"Nome Usuario",
		"email":"email_usuario",
		"telefone":"telefone"
	},
	"uf":"CE",
	"cidade":"Juazeiro do Norte",
	"bairro":"Planalto",
	"estado":"Cear\u00e1",
	"logradouro":"Rua Ricardo Luiz de Andrade",
	"unidade":"",
	"cpc":"",
	"logradouro_curto":"Rua Ricardo Luiz de Andrade",
	"codigomunicipio":2307304,
	"iscapital":0
}

Veja que no objeto JSON existe a chave usuario, que contém dados de usuário cadastrado a quem pertence a chave usada. E as outras chaves trazem os dados referentes ao endereço ao qual corresponde o CEP.

Vantagens e desvantagens

A API do DevMedia tem como vantagem o código do município no IBGE e a flag que diz se é uma capital ou não.
A desvantagem é a dificuldade de uso em relação ao Cross site, você deve configurar seu servidor ou rede para permitir solicitações Cross domain. Outra desvantagem é que ele não diz o tipo de logradouro.
E uma falha é o fato de trazer o status do resultado em forma de texto, por exemplo, quando o CEP não existe e dá a mensagem falha – CEP invalido, seria melhor se ele trouxesse um código de status.

Republica Virtual

Na API da Republica Virtual não é necessário o uso de chave, o que torna a busca mais simples.
As requisições devem ser feitas para http://cep.republicavirtual.com.br/web_cep.php, e devem ser passados por parâmetro o cep e o formato. Veja um exemplo:

$('#buscar').click(function(){
	$.ajax({
		url:'http://cep.republicavirtual.com.br/web_cep.php',
		type:'get',
		dataType:'json',
		crossDomain: true,
		data:{
			cep: $('#cep').val(), //pega valor do campo
			formato:'json'
		},
		success: function(res){
			$('#resultado').append(''+res.tipo_logradouro+''+res.logradouro)
			.append('BAIRRO'+res.bairro)
			.append('CIDADE'+res.cidade+ ' - '+res.uf);
		}
	});
});

Pesquisando pelo CEP 63047-310, ele retornou o seguinte resultado:

{
	"resultado":"1",
	"resultado_txt":"sucesso - cep completo",
	"uf":"CE",
	"cidade":"Juazeiro do Norte",
	"bairro":"Planalto",
	"tipo_logradouro":"Rua",
	"logradouro":"Ricardo Luiz de Andrade"
}

Veja que é mais simples, e traz o resultado como código 1 para Ok e 0 para erro.

Vantagens e desvantagens

A principal vantagem da API da Republica Virtual é o fato de trazer o código de resultado em formato numérico. Outra vantagem é o tipo de logradouro.
Uma desvantagem é o fato de não trazer o código do município no IBGE.

Atualização da base

Ambas as bases parecem bem atualizadas. Infelizmente não consegui entrar em contato com o responsável pela Republica Virtual, que parece ser realmente mais antiga.

Jayr Alencar

Doutorando em Ciências da Computação no Centro de Informática da Universidade Federal do Pernambuco (CIn - UFPE); Mestre pela mesma instituição; Formado em Análise e Desenvolvimento de Sistemas; Católico; Fã de O Senhor do Anéis.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Deprecated: Creation of dynamic property Daisy_Blog_Google_Local::$files is deprecated in /home2/clube692/public_html/wp-content/themes/daisy-blog/inc/blocks/font-family/inc/class-fonts-google-local.php on line 77

Deprecated: Creation of dynamic property Daisy_Blog_Google_Local::$files is deprecated in /home2/clube692/public_html/wp-content/themes/daisy-blog/inc/blocks/font-family/inc/class-fonts-google-local.php on line 77