Não consigo copiar aqui todo codigo devido a a limitação dos caracteres enviei somente alguns treços porem o codigo completo está no meu github
public class Endereco {
private String cep;
private String logradouro;
private String complemento;
private String localidade;
private String uf;
private String ibge;
private String gia;
private String ddd;
private String siafi;
private String bairro;
public Endereco(PegarEndecoViaApi pegarEndecoViaApi) {
this.cep =pegarEndecoViaApi.cep();
this.logradouro = pegarEndecoViaApi.logradouro();
this.complemento = pegarEndecoViaApi.complemento();
this.localidade = pegarEndecoViaApi.localidade();
this.uf = pegarEndecoViaApi.uf();
this.bairro = pegarEndecoViaApi.bairro();
this.ibge = pegarEndecoViaApi.ibge();
this.gia = pegarEndecoViaApi.gia();
this.ddd = pegarEndecoViaApi.ddd();
this.siafi = pegarEndecoViaApi.siafi();
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getLogradouro() {
return logradouro;
}
public void setLogradouro(String logradouro) {
this.logradouro = logradouro;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getLocalidade() {
return localidade;
}
public void setLocalidade(String localidade) {
this.localidade = localidade;
}
public String getUf() {
return uf;
}
@Override
public String toString() {
return "{" +
"cep='" + cep + '\'' +
", logradouro='" + logradouro + '\'' +
", complemento='" + complemento + '\'' +
", localidade='" + localidade + '\'' +
", uf='" + uf + '\'' +
", ibge='" + ibge + '\'' +
", gia='" + gia + '\'' +
", ddd='" + ddd + '\'' +
", siafi='" + siafi + '\'' +
'}';
}
}
package Estruturas.lukoki.ao;
public record PegarEndecoViaApi(String cep, String logradouro,String complemento,String bairro, String localidade,String uf, String ibge,String gia, String ddd,String siafi) {
}
public class Consumo {
private HttpClient client;
public Consumo() {
this.client = HttpClient.newHttpClient();
}
public String consumindoApi(String link){
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(link)).build();
try {
HttpResponse<String> response = this.client.send(request, HttpResponse.BodyHandlers.ofString());
if(response.statusCode()==200){
return response.body();
}else{
return null;
}
} catch (IOException | InterruptedException e) {
throw new erroDeCoonsumo("Erro ao consumir");
}
}
public PegarEndecoViaApi converterEmGson(String response){
try {
Gson gson = new Gson();
return gson.fromJson(response,PegarEndecoViaApi.class);
}catch (Exception e){
return null;
}
}
}
public class Main {
public static void main(String[] args) {
int opcao;
Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).setPrettyPrinting().create();
Scanner leitura = new Scanner(System.in);
List<Endereco> enderecos = new ArrayList<>();
String cep;
System.out.println("PESQUISAR A LOCALIDADE POR CEP");
System.out.print("Digite o seu cep sem o simbolo de traço ");
cep = leitura.nextLine();
String link = "https://viacep.com.br/ws/"+cep+"/json/";
Consumo consumo = new Consumo();
try {
String response = consumo.consumindoApi(link);
PegarEndecoViaApi pegarEndecoViaApi = consumo.converterEmGson(response);
Endereco meuEndereco = new Endereco(pegarEndecoViaApi);
enderecos.add(meuEndereco);
system.out.println(meuEndereco)
escrever = new FileWriter("endereco.json");
escrever.write(gson.toJson(enderecos));
escrever.close();
}catch (erroDeCoonsumo e){
System.out.println(e.getMessage());
}
}