1
resposta

[Projeto] desafio cep

Endereco

int cep;
    String logradouro;
    String complemento;
    String unidade;
    String bairro;
    String localidade;
    String siglaDoEstado;
    String estado;
    String regiao;
    int ibge;
    int ddd;
    int siafi;
    Boolean erro;


    public Endereco(){}

    public Endereco(EnderecoRecord e){
        this.erro=e.erro();
        if (erro){
            throw new CepInvalidoExeption("o cep é invalido");
        }
        //01001000
        //99999999

        this.cep=Integer.valueOf(e.cep().replaceAll("-",""));
        this.logradouro=e.logradouro();
        this.complemento=e.complemento();
        this.unidade=e.unidade();
        this.bairro=e.bairro();
        this.localidade=e.localidade();
        this.siglaDoEstado=e.uf();
        this.estado=e.estado();
        this.regiao=e.regiao();
        this.ibge=Integer.valueOf(e.ibge());
        this.ddd=Integer.valueOf(e.ddd());
        this.siafi=Integer.valueOf(e.siafi());
    }

    @Override
    public String toString() {
        return "Endereco{" +
                "cep=" + cep +
                ", logradouro='" + logradouro + '\'' +
                ", complemento='" + complemento + '\'' +
                ", unidade='" + unidade + '\'' +
                ", bairro='" + bairro + '\'' +
                ", localidade='" + localidade + '\'' +
                ", siglaDoEstado='" + siglaDoEstado + '\'' +
                ", estado='" + estado + '\'' +
                ", regiao='" + regiao + '\'' +
                ", ibge=" + ibge +
                ", ddd=" + ddd +
                ", siafi=" + siafi+
                '}';
    }

Connecta


    public Connecta(String cep) throws IOException, InterruptedException {

        Gson gson=new GsonBuilder()
                .setPrettyPrinting().create();
try {


    String endereco = "https://viacep.com.br/ws/" + cep + "/json/";
    //01001000
    //99999999
    HttpClient cliente = HttpClient.newHttpClient();
    System.out.println("endereco:" + endereco);
    HttpRequest requisicao = HttpRequest.newBuilder().uri(URI.create(endereco)).build();

    HttpResponse<String> resposta = cliente.send(requisicao, HttpResponse.BodyHandlers.ofString());

    if (resposta.statusCode() == 400) {
        throw new CepInvalidoExeption("o numero de cep é invalido");
    }
    String json = resposta.body();
    System.out.println(json);

    EnderecoRecord enderecoGravado = gson.fromJson(json, EnderecoRecord.class);
    System.out.println(enderecoGravado);
    Endereco endereco1 = new Endereco(enderecoGravado);
    System.out.println(endereco1);

    FileWriter escrita=new FileWriter("enderecos.json");
    escrita.write(gson.toJson(endereco1));
    escrita.close();
}catch (CepInvalidoExeption e){
    System.out.println(e.getMensagem());
}
    }

Main

System.out.println("digite o cep: ");
        Scanner scanner = new Scanner(System.in);
        String cep="";
        List<Endereco> enderecos = new ArrayList<>();

        while (!cep.equalsIgnoreCase("sair")){
            cep = scanner.next();
            if (cep.equals("sair")){
                break;
            }
                Connecta connecta = new Connecta(cep);
        }
1 resposta

Oi, Jordan! Como vai?

Agradeço por compartilhar.

Gostei bastante de como você estruturou a classe Endereco e tratou os erros de forma clara no construtor. Isso mostra atenção ao fluxo da aplicação e melhora a legibilidade.

Continue firme nos estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!