Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ajuda na api

public class GoogleBookResponse {

private List listaDeItens = new ArrayList<>();

@Override public String toString() { return "listaDeItens=" + listaDeItens; }

public List getListaDeItens() { return listaDeItens; }

public VolumeInfo getVolumeinfo() {

 return new VolumeInfo();

}

}

public class Itens {

private VolumeInfo volumeInfo;

public void listaDeLivros(GoogleBookResponse googleBookResponse) {
    if (googleBookResponse != null) {
        List<Itens> listaDeItens = googleBookResponse.getListaDeItens();
        for (Itens item : listaDeItens) {
            this.volumeInfo = item.getVolumeInfo();
            System.out.println("Title: " + volumeInfo.getTitle());
            System.out.println("Authors: " + volumeInfo.getAuthors());
            System.out.println("Publisher Date: " + volumeInfo.getPublisherDate());
            System.out.println("------------------------");
    }
}else {
    System.out.println("Nenhuma informação em nossa biblioteca sobre esse livro");
}

}

}

public class VolumeInfo {

private String title; private List authors; private String publisherDate;

public VolumeInfo(String title, List authors, String publisherDate) { this.title = title; this.authors = authors; this.publisherDate = publisherDate; }

@Override public String toString() { return "title = " + title + ", authors=" + authors + ", publisherDate='" + publisherDate; }

public String getTitle() { return title; }

public List getAuthors() { return authors; }

public String getPublisherDate() { return publisherDate; }

}

public class Principal { public static void main(String[] args) throws IOException, InterruptedException {

    Scanner leitura = new Scanner(System.in);
    System.out.println("Digite o nome do livro: ");
    var tituloLivro = leitura.nextLine();

    String chave = "AIzaSyCX5L92HYujHpn-AyOl8DPPk_gqHbKcZFw";
    String endereco = "https://www.googleapis.com/books/v1/volumes?q=" + tituloLivro
            .replace(" ", "++++++") + "&key=" + chave;

   // try {
        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(endereco))
                .build();
        HttpResponse<String> response = client
                .send(request, HttpResponse.BodyHandlers.ofString());
        String json = response.body();
        System.out.println(json);

        Gson gson = new GsonBuilder()
                .setPrettyPrinting().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
                .create();
    GoogleBookResponse meuTitulo = gson.fromJson(json, GoogleBookResponse.class);
    System.out.println(meuTitulo);

preciso de ajuda em como trazer os aspectos dessa api 
2 respostas
solução!

Olá, Wesley! Parece que você está buscando uma maneira de extrair informações de uma API do Google Books e exibi-las. Vou tentar ajudar com isso.

Primeiro, vamos entender o que você já fez. Você já está fazendo uma requisição HTTP para a API do Google Books e obtendo uma resposta em formato JSON. Depois, você está usando a biblioteca Gson para transformar essa resposta JSON em um objeto GoogleBookResponse.

Agora, para trazer os aspectos dessa API, você precisa entender a estrutura do JSON que a API retorna. Cada livro retornado pela API é um item na lista listaDeItens do objeto GoogleBookResponse. Cada item tem um objeto VolumeInfo que contém as informações do livro.

Você já tem um método listaDeLivros na classe Itens que imprime as informações de cada livro. No entanto, este método não está sendo chamado em nenhum lugar. Você precisa chamar este método após deserializar o JSON para um objeto GoogleBookResponse.

Aqui está como você pode fazer isso na classe Principal:

GoogleBookResponse meuTitulo = gson.fromJson(json, GoogleBookResponse.class);
Itens itens = new Itens();
itens.listaDeLivros(meuTitulo);

Isso deve imprimir as informações de cada livro retornado pela API.

Lembre-se de que a qualidade das informações retornadas depende dos dados disponíveis na API do Google Books para os livros pesquisados.

Espero ter conseguido entender a sua dúvida e conseguido ajudar. Qualquer coisa manda aqui. Bons estudos!

Muito Obrigado!!

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