Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Buscador de cep VIACEP api

Quero só compartilhar a minha solução para um dos projetos propostos. Com a API da viacep, o desafio consistia em buscar e fazer o parsing dos dados retornados como json utilizando como auxilio a API Gson.

Este e o código da classe principal Main.java:

public class Main {
    public static void main(String[] args) {
        Scanner writer = new Scanner(System.in);
        Gson gson = new GsonBuilder()
                .setPrettyPrinting()
                .create();
        int option = 0;
        Address dadosEndereco = null;
        List<Address> dadoListaEndereco = new ArrayList<>();

        try {
            do {
                System.out.println("##########################");
                System.out.println("1. Procurar CEP\n2. Procurar endereço\n0. Sair");
                System.out.println("##########################");

                System.out.print("\nEscolha uma opção: ");

                option = writer.nextInt();
                writer.nextLine();

                switch (option) {
                    case 1:
                        System.out.print("\nInsira o estado (ex.: SP): ");
                        String estado = writer.nextLine();

                        System.out.print("Insira o cidade (ex.: Brasilia): ");
                        String cidade = writer.nextLine();

                        System.out.print("Insira o logradouro (ex.: Rua, Avenida, Trav.): ");
                        String logradouro = writer.nextLine();

                        Type listaEnderecosType = new TypeToken<List<AddressRepresentation>>(){}.getType();
                        List<AddressRepresentation> listaDeEnderecos = gson.fromJson(
                            ViacepService.getListAddress(estado, cidade, logradouro).body(),
                            listaEnderecosType
                        );

                        for(AddressRepresentation endereco : listaDeEnderecos) {
                            dadoListaEndereco.add(new Address(endereco));
                        }

                        if(dadoListaEndereco.size() != 0) {
                            System.out.println("----------------- encontrados");
                            dadoListaEndereco.forEach((adress) -> {
                                System.out.println("cep: "+adress.getCep());
                            });

                            System.out.println("-----------------------------");
                        } else System.out.println("\n[nada encotrado]\n");

                        break;
                    case 2:
                        System.out.print("\nInsira o CEP (ex.: 99999999): ");
                        String numeroCEP = writer.nextLine();

                        AddressRepresentation endereco = gson.fromJson(
                            ViacepService.getAddressByCEP(numeroCEP).body(),
                            AddressRepresentation.class
                        );

                        dadosEndereco = new Address(endereco);

                        System.out.println(dadosEndereco);
                        break;
                    case 0: break;
                    default: System.out.println("Opção invalida!");
                }
            } while (option != 0);

            FileWriter escrita = new FileWriter("endereco.json");
            FileWriter escritaLista = new FileWriter("enderecos.json");

            escrita.write(gson.toJson(dadosEndereco));
            escritaLista.write(gson.toJson(dadoListaEndereco));

            escrita.close();
            escritaLista.close();
        } catch (Exception e) {
            System.out.println("Houve algum erro!");
            System.out.println(e.getMessage());
        }

        System.out.println("Programa Finalizado!");
    }
}
1 resposta
solução!

Oi Diego, tudo bem?

Muito obrigada por compartilhar sua sugestão para o projeto de busca de CEP utilizando a API Viacep. O código que você postou tá bem estruturado e organizado.

No geral, acredito que sua solução está muito boa! Parabéns pelo trabalho.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software