Tag Archives: cep

WCF – Services GoogleMaps API Consultar CEP

Chega de teoria! #1 : O primeiro serviço com WCF

Continuando a saga para nos familiarizar com o WCF. A missão de hoje é aprender como desenvolver passo-a-passo um serviço WCF. Vamos lá:

Uma funcionalidade comum em apps é “Consultar CEP”. Ou seja, o cliente se cadastra no site, e no preenchimento do CEP, os demais campos são preenchidos automaticamente.

Como este projeto é simples, um wrapper .NET(codeplex) para a API do Google Maps que realiza este tipo de tarefa (entre outras). Para isto utilizaremos a parte do Geocoding do Google Maps através deste componente.

O Projeto

A primeira etapa. Defina os detalhes da criação do projeto:

  • Nome : DemoCepGMaps WCF
  • Template Project : Console Application
  • NET : Componente para a API do Google Maps (referência)
  • Assembly : System.ServiceModel

O método ObterEndereco

Este método irá obter o endereço através do CEP.

 
private static string ObterEndereco(string cep)
        {
            var target = new Geocoding();

            var addressLocation = target.GetByAddress(cep).Results[0].Geometry.Location;

            var addressInformation = target.GetByCardinalDirection(String.Format("{0},{1}",
                addressLocation.Latitude.ToString(new CultureInfo("en-US")),
                addressLocation.Longitude.ToString(new CultureInfo("en-US"))));

            var address = addressInformation.Results[0].FormattedAddress;

            return address;
        }

O método ObterCep

Veja também como é simples pegar CEP pelo endereço.

private static string ObterCep(string endereco)
        {
            var target = new Geocoding();

            var addressLocation = target.GetByAddress(endereco).Results[0].Geometry.Location;

            var addressInformation = target.GetByCardinalDirection(String.Format("{0},{1}",
                addressLocation.Latitude.ToString(new CultureInfo("en-US")),
                addressLocation.Longitude.ToString(new CultureInfo("en-US"))));

            return addressInformation.Results[0].AddressComponents.Where(s => 
            s.GeoTypes.Contains("postal_code")).FirstOrDefault().LongName;
        }

Etapa 3: Main.cs

Finalmente, agora vamos chamar estes métodos. No método Main, implemente.

string endereco = ObterEndereco("04055-110");
string cep = ObterCep("Av Capitão Casa – São Bernardo do Campo – SP – Brazil");

Console.WriteLine("Meu endereço {0}", endereco);
Console.WriteLine("Meu cep {0}", cep);

O retorno será:

  • Meu endereço: R. das Uvaias, 2-178 – Saúde, Sao Paulo – São Paulo, 04055-110, Brazil
  • Meu CEP: 09811-250

Endereço Quebrado
Veja também como é simples preencher os campos isolados da aplicação.

static string endereco = string.Empty,
bairro = string.Empty,
numero = string.Empty,
cidade = string.Empty,
estado = string.Empty,
pais = string.Empty;

Aqui estou criando os membros privados que iremos exibir.

Agora crie a função que faça a quebra utilizando o wrapper do CodePlex:

private static void ObterEnderecoQuebrado(string cep)
        {
            var target = new Geocoding();
            var addressLocation = target.GetByAddress(cep).Results[0].Geometry.Location;
            var addrressInformation = target.GetByCardinalDirection(String.Format("{0},{1}",
                addressLocation.Latitude.ToString(new CultureInfo("en-US")),
                addressLocation.Longitude.ToString(new CultureInfo("en-US"))));

            var addressComponents = addrressInformation.Results[0].AddressComponents;

            numero = GetComponentValue(addressComponents, "street_number");
            endereco = GetComponentValue(addressComponents, "route");
            pais = GetComponentValue(addressComponents, "country");
            bairro = GetComponentValue(addressComponents, "sublocality");
            cidade = GetComponentValue(addressComponents, "locality");
            estado = GetComponentValue(addressComponents, "administrative_area_level_1");
        }

No Main:

ObterEnderecoQuebrado("09571-300");
Console.WriteLine("Meu endereco", endereco);
Console.WriteLine("Intervalo de numeros", numero);
Console.WriteLine("Meu bairro", bairro);
Console.WriteLine("Minha cidade", cidade);
Console.WriteLine("Meu estado", estado);
Console.WriteLine("Meu pais", pais);

Pronto! agora o retorno:
Meu endereço: R. Sílvia
Intervalo de números: 1452-1536
Meu bairro: Oswaldo Cruz
Minha cidade: São Caetano do Sul
Meu estado: São Paulo
Meu país: Brazil

O objetivo deste post era mostrar uma introdução ao mundo WCF criando um serviço bem simples. Os próximos passos vamos nos preocupar com mais abordagens práticas.

Observações

Veja alguns pontos importantes:

Para aplicação web, utilize este web.config:

Pronto! Agora temos uma app serviço de cep pronto. Agora é testar o Serviço com o WCF TestClient.

Ok! Sobre Services WCF é tudo o que eu tenho a dizer.

O jogo continua.

Missão cumprida!

 

 

WebServices – Conceito Simplificado, Aplicabilidade e Dependências Mínimas

icon_ws

Conceito Simplificado, Aplicabilidade e Dependências Mínimas.

Everything Connected

Web Services são a melhor opção quando pensamos em comunicação entre plataformas ou tecnologias, pois eles são, atualmente, praticamente suportados por todas as plataformas.

A conectividade entre os sistemas dá-se com baixo nível de acoplamento e por isso é uma interessante opção se pensarmos em integração de sistemas heterogêneos.

Técnicamente falando, os W/S são conjunto de implementações (classes/metodos) expostos para uso externo via protocolo web padrão, com uma tendência “for everything connected”. Ou seja, são classes (publicadas) para serem acessadas pela Internet. Utilizada por protocolos e linguagens da Internet, como SOA, XML e WSDL.

Os WebServices são blocos fundamentais para a criação de sistemas de computação distribuída na Internet. Uma iniciativa conjunta da industria de TI para promover a compatibilidade dos WebServices entre diferentes plataformas, aplicações e linguagens.

O grande diferencial, é uma arquitetura que permite a disponibilização dessas classes para qualquer aplicativo em qualquer plataforma que suporte este protocolo. Desta forma é possível ter uma aplicação em Java rodando em Unix que acesse um W/S publicado em um Servidor .NET.

Em resumo, um W/S é uma porção de código localizada num servidor web e que pode ser utilizada por uma aplicação qualquer. O web service pode produzir documentos ou procedimentos.

Como acabamos de ver, o Web Service é uma maneira simples de integrar sistemas, utilizando como base um arquivo texto, estruturado, capaz de ser lido por praticamente qualquer plataforma.

Designed for interaction of datas between apps and plataforms!

Em uma aplicação é possível trocar informação entre aplicações, instituições, bancos ou plataformas. Uma forma comumente é através da geração e consumo de arquivos textos de acordo com os delimitadores descritos na documetação.

Com o WebServices, este process ficou fácil e transparente. Porque, os arquivos são gerados em XML e transmitidos via SOAP protocolo.O XML contém todos os elementos necessários à leitura, dispensando os delimitadores existentes nos arquivos texto.

Um outro exemplo seria uma pagina Asp.net que contenha informação como conta de água, light, tel, etc….Se cada empresa responsável por essas informações criar um webservice para a sua tarefa em questão e o disponibilizar na web. Posso consumí-los em qualquer aplicação Asp.net, Windows App, Console App, Pocket pc e Mobile.

Imagine que cada webs como uma funcionalidade que recebe parametros (número da conta, light, telefone, …, e retorna um xml parametro via HTTP. Se eu fosse desenvolver este app no ASP, demandaria tabalho para administrar vários text file, autorizações, etc…Ou seja, o asp não se parece com web services.

É possível também oferecer um app em tempo real que informe o preço de uma passagem real entre várias compainhas aéreas. Isso é possível se cada compainha disponibilizar um ws para prover entre outras coisas o preços das passagens permitindo um app consultar dinâmicamente estas informações e obter os valores desejados para cotação. Esse app poderia estar numa intranet ou um palmtop.

Finalizando, podemos constatar que são muitas as possibilidades para fazer aplicativos se comunicarem trocando informação via Internet com os WebServices. Criando novas oportunidades de negócios, onde os dados trafegam no formato XML.

Onde ela pode nos ajudar?

Hoje, temos inúmeros exemplos de sistemas que trabalham com Web Service. Desde uma loja virtual, que deseja terceirizar suas vendas, permitindo que outros Web sites façam revendas utilizando o seu mecanismo de pagamento e regras de negócios. Sistemas voltados à medicina e pesquisa também utilizam bastante esta tecnologia. Temos até serviços de informação, como busca de endereço através do CEP, consulta ao SERASA, ou cotações.

Quais situações utilizam esses recursos? Quando queremos integrar sistemas, ou disponibilizar recursos.