Olá desenvolvedores, neste tutorial sobre web service de consulta ao CEP iremos nesta parte 3 adicionar os dados consultados do JSON para o Objeto Java. Até o momento em nossa aplicação já conseguimos conectar o web service, ler o retorno e colocá-lo em uma String. Que é o que RESTFull faz, ele provê um objeto JSON que é uma string.
Neste momento precisamos então pegar os dados dessa String e guardá-los dentro de um objeto. Mas antes precisamos conhecer que dados são retornados, e faremos isso consultando o ViaCEP. Todos estes dados que compreendem logradouro, complemento, bairro, localidade, uf, unidade ibge e gia serão atributos do tipo String do objeto pessoa. E claro, é preciso gerar os métodos Getters and Setters para cada um deles.
Por estarmos utilizando JPA – Java Persistence API e Hibernate os campos serão criados na base de dados de forma automática.
ADICIONANDO DADOS CONSULTADOS
Dentro do objeto pessoa não será necessário “setar” o CEP, porque ele já é “setado” quando o CEP é digitado no campo correspondente, mas você poderá fazê-lo se quiser. No entanto, todos os demais atributos deverão ser “setados” para o objeto pessoa. Depois de atribuídos os dados é preciso recarregar a página para que os campos na tela possam ser recarregados e os dados exibidos.
Mas a melhor forma de colocar a String retornada em um objeto é utilizando a biblioteca Gson que você poderá obter no repositório Maven clicando aqui. O código obtido será adicionado as dependências do projeto na página pom.xml.
No método pesquisaCep() do ManagedBean, instancie um novo objeto pessoa, mas um objeto que terá a função de auxiliar. O objetivo é injetar dentro desse objeto auxiliar os atributos que estão vindo do web service. E para isso dentro deste objeto teremos um método que receberá o JSON e a classe que será convertida.
Pessoa gsonAux = new Gson().fromJson(jsonCep.toString(), Pessoa.class);
Feito isso pegaremos os dados passados ao objeto pessoa auxiliar e colocaremos dentro do objeto pessoa que está sendo controlado na tela pelo JSF – JavaServer Faces.
EM POUCAS PALAVRAS
Então temos agora o pesquisaCep() consultando o web service, retornando os dados consultados, lendo o resultado e o transformando em um objeto auxiliar para de fato nos auxiliar a colocar os dados em tela. Estes dados então serão “setados” no objeto controlado pelo JSF.