1
resposta

[Projeto] Projeto viacep Usando springboot

package box.solution.lukoki.boxSolution.model;

import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;


@JsonIgnoreProperties(ignoreUnknown = true)
public record DadosLocalizacao(
       @JsonAlias("cep") String Cep,
       @JsonAlias("logradouro") String Logradouro,
       @JsonAlias("complemento") String Complemento,
       @JsonAlias("bairro") String Bairro,
       @JsonAlias("localidade") String Localidade,
       @JsonAlias("uf") String Uf,
       @JsonAlias("ibge") String Ibge,
       @JsonAlias("gia") String Gia,
       @JsonAlias("ddd") String Ddd,
       @JsonAlias("siafi") String Siafi) {
}

package box.solution.lukoki.boxSolution.model;

import com.fasterxml.jackson.annotation.JsonAlias;

public class MinhaLocalizacao {
    private String Cep;
    private String Logradouro;
    private String Complemento;
    private String Bairro;
    private String Uf;
    private String Ibge;
    private String Gia;
    private String Ddd;
    private String Siafi;

public MinhaLocalizacao(DadosLocalizacao dadosLocalizacao) {
    Cep = dadosLocalizacao.Cep();
    Logradouro = dadosLocalizacao.Logradouro();
    Complemento = dadosLocalizacao.Complemento();
    Bairro = dadosLocalizacao.Bairro();
    Uf = dadosLocalizacao.Uf();
    Ibge = dadosLocalizacao.Ibge();
    Gia = dadosLocalizacao.Gia();
    Ddd = dadosLocalizacao.Ddd();
    Siafi = dadosLocalizacao.Siafi();
}

public String getCep() {
    return Cep;
}

public void setCep(String cep) {
    Cep = cep;
}

public String getLogradouro() {
    return Logradouro;
}

public void setLogradouro(String logradouro) {
    Logradouro = logradouro;
}

public String getComplemento() {
    return Complemento;
}

public void setComplemento(String complemento) {
    Complemento = complemento;
}

public String getBairro() {
    return Bairro;
}

public void setBairro(String bairro) {
    Bairro = bairro;
}

public String getUf() {
    return Uf;
}

public void setUf(String uf) {
    Uf = uf;
}

public String getIbge() {
    return Ibge;
}

public void setIbge(String ibge) {
    Ibge = ibge;
}

public String getGia() {
    return Gia;
}

public void setGia(String gia) {
    Gia = gia;
}

public String getDdd() {
    return Ddd;
}

public void setDdd(String ddd) {
    Ddd = ddd;
}

public String getSiafi() {
    return Siafi;
}

public void setSiafi(String siafi) {
    Siafi = siafi;
}

}

package box.solution.lukoki.boxSolution.service;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class ConsumoAPI {

public String obterDados(String endereco){
    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(endereco))
            .build();
    HttpResponse<String> response = null;
    try {
        response = client
                .send(request, HttpResponse.BodyHandlers.ofString());
    } catch (IOException e) {
        throw new RuntimeException(e);
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }
    String json = response.body();
    return json;

}

}

package box.solution.lukoki.boxSolution.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ConverterDados implements IconverterDados{
    private ObjectMapper objectMapper = new ObjectMapper();

@Override
public <T> T obterDados(String Json, Class<T> classe) {
    try {
        return objectMapper.readValue(Json,classe);
    } catch (JsonProcessingException e) {
        throw new RuntimeException(e);
    }
}

}

package box.solution.lukoki.boxSolution.service;

public interface IconverterDados {
    <T> T obterDados(String Json, Class<T> classe);
}
1 resposta

Oii Lukoki! Tudo bem?

Ótimo código, parabéns pelo empenho e obrigada por compartilhá-lo com a nossa comunidade, tenho certeza que servirá de inspiração para muitos colegas que possam estar com dificuldade!

Caso tenha alguma dúvida, sinta-se à vontade em compartilhar aqui no fórum.

Bons estudos, Lukoki!