Estou fazendo os exercícios de aula do curso, e decidi transformar a api do googlebooks no objeto livro, entretanto, minha saída está sendo null em todos os atributos.... Código principal:
import com.google.gson.GsonBuilder;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;
public class PesquisaLivros {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner scanner = new Scanner(System.in);
System.out.println("Insira o nome do resposta que você deseja buscar:");
var resposta = scanner.nextLine();
String API_KEY = "***************************************"; //sem API key pra vocês haha
String adress = "https://www.googleapis.com/books/v1/volumes?q=" + resposta + "&fields=items&key=" + API_KEY;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(adress))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
String json = response.body();
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)
.create();
Livro livro = gson.fromJson(json, Livro.class);
System.out.println(livro);
}
}
Record Livro:
public record Livro(String title, String[] authors, String publisher, String publishedDate) {
}
Saída:
Livro[title=null, authors=null, publisher=null, publishedDate=null]