Olá desenvolvedores, estamos implementando um web service de consulta ao CEP. Na PARTE 1 deste tutorial implementamos o lado do Front-end. No Back-end deixamos preparada a assinatura do método pesquisaCEP(), que é o responsável pelo processamento da requisição de consulta ao CEP.

Nesta sequência iremos fazer a consulta do web service via RESTful. Nosso objetivo nesta fase da implementação é obter o JSON – JavaScript Object Notation, um objeto em formato de texto.

Até este ponto da implementação já conseguimos obter o CEP que foi digitado em tela, e o fizemos por meio do evento de perda de foco, “blur”.

MÉTODO PESQUISACEP()

No escopo do método pesquisaCep() implementaremos os blocos try/catch. Dentro do bloco try estará todo o código necessário ao processamento e pesquisa do CEP. Assim, caso ocorra um erro em algumas das fases, a execução será desviada para o bloco catch. E neste último caso uma mensagem será enviada na tela e o erro impresso no console.

Independente do web service a ser consumido, precisamos instanciar uma classe Java chamada “URL” do pacote java.net. O serviço web que utilizaremos é o ViaCEP, para o qual devemos informa o CEP e o tipo de retorno desejado. É deste serviço que obteremos a URL – Uniform Resource Locator, que passaremos para a classe do Java.

Desse modo dentro do bloco try instancie o objeto url e passe como argumento a URL disponibilizada pelo serviço viaCEP concatenada com o atributo Cep do objeto pessoa.

try{
URL url = new URL ("https://viacep.com.br/ws"+pessoa.getCep()+"/json/")
}

Agora, para abrir a conexão fazemos a conexão da URLConnection do java.net. E com a classe InputStream obteremos o retorno que deverá ser colocado dentro de um BufferReader(), onde o novo objeto cujo objetivo é a fazer a leitura será um InputStreamReader que como parâmetro receberá o retorno do servidor e a codificação UTF-8.

Mas não para por aqui, todo este retorno deverá ser colocado dentro de uma String. Precisaremos também da instância de um StringBuilder, é por meio dessa instância que adicionaremos o valor recebido a variável CEP.

String cep =  “”;
StringBuilder jsonCep = new StringBuilder();

E como este retorno vem em formato de String será preciso varrer todas as linhas. Dessa forma enquanto o CEP for diferente de null, haverá elementos para serem lidos.

while ((cep = br.readLine()) != null){
jsonCep.append(cep);
}

Com o objeto System.out que é a saída padrão para exibição de Strings no console, exibiremos o resultado em tela.

System.out.println(jsonCep);

EM POUCAS PALAVRAS

Assim que o campo perde o foco após o usuário inserir o CEP, o método pesquisaCep() é chamado. No método, o CEP é capturado pelo pessoa.getCep() da URL. Assim, a URL será criada e a conexão feita, sendo então obtido o retorno do tipo JSON, e por fim uma leitura do retorno é realizada por meio do BufferReader.

Então todo o valor do retorno será colocado dentro de uma String, e por meio do laço de repetição a String é lida e após o processamento exibida no console.