Desafio API ViaCep
Main:
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
var scanner = new Scanner(System.in);
var consultaApi = new ConsultaApi();
var gerarJson = new GerarJson();
List<Local> list = new ArrayList<>();
String pesquisa = "";
while (!pesquisa.equalsIgnoreCase("sair")){
System.out.println("Digite o CEP que quer adicionar: ");
pesquisa = scanner.nextLine();
if(pesquisa.equalsIgnoreCase("sair")){
break;
}
pesquisa = pesquisa.replaceAll("\\D", "");
if(pesquisa.length() != 8){
System.out.println("CEP invalido");
}else{
list.add(consultaApi.consultaApi(pesquisa));
System.out.println("Cidade adicionada: " + consultaApi.consultaApi(pesquisa).getCidade());
}
}
gerarJson.gerarJson(list);
}
}
Local:
import com.google.gson.annotations.SerializedName;
public class Local {
private String cep;
private String logradouro;
private String bairro;
@SerializedName("localidade")
private String cidade;
private String uf;
private String estado;
private String regiao;
public String getCidade() {
return cidade;
}
}
ConsultaApi:
import com.google.gson.Gson;
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 ConsultaApi {
Gson gson = new Gson();
public Local consultaApi(String pesquisa) throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://viacep.com.br/ws/" + pesquisa + "/json/"))
.GET()
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
String json = response.body();
return gson.fromJson(json, Local.class);
}
}
GerarJson:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
public class GerarJson {
Gson gson = new GsonBuilder()
.setPrettyPrinting()
.create();
public void gerarJson(List list) throws IOException {
var writer = new FileWriter("Locais.json");
writer.write(gson.toJson(list));
writer.close();
}
}
Terceira semana estudando e primeiro desafio postado aqui no forum.