Passo 1: Preparação - Dependências e Chave da API
XML
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.1</version> </dependency>
</dependencies>
usando Gradle, adicione ao seu build.gradle:
Gradle
dependencies {
implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.1' // Use a versão mais recente
}
"[SUA_API_KEY]"
Passo 2: Criar a Classe TituloOmdb (DTO para o JSON da API)
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@JsonIgnoreProperties(ignoreUnknown = true) // Ignora campos JSON que não estão nesta classe
public class TituloOmdb {
@JsonAlias("Title")
private String titulo;
@JsonAlias("Year")
private String anoDeLancamento;
@JsonAlias("Runtime")
private String tempoDeDuracao;
@JsonAlias("Plot")
private String sinopse;
@JsonAlias("Response") // Campo que indica se a busca foi bem-sucedida ("True"/"False")
private String resposta;
@JsonAlias("Error") // Campo de erro se a busca não for bem-sucedida
private String erro;
// Construtor padrão (necessário para Jackson deserializar)
public TituloOmdb() {
}
// --- Getters ---
public String getTitulo() {
return titulo;
}
public String getAnoDeLancamento() {
return anoDeLancamento;
}
public String getTempoDeDuracao() {
return tempoDeDuracao;
}
public String getSinopse() {
return sinopse;
}
public String getResposta() {
return resposta;
}
public String getErro() {
return erro;
}
// --- Setters (Jackson usa setters para preencher os campos) ---
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public void setAnoDeLancamento(String anoDeLancamento) {
this.anoDeLancamento = anoDeLancamento;
}
public void setTempoDeDuracao(String tempoDeDuracao) {
this.tempoDeDuracao = tempoDeDuracao;
}
public void setSinopse(String sinopse) {
this.sinopse = sinopse;
}
public void setResposta(String resposta) {
this.resposta = resposta;
}
public void setErro(String erro) {
this.erro = erro;
}
@Override
public String toString() {
return "Título: '" + titulo + '\'' +
", Ano: " + anoDeLancamento +
", Duração: " + tempoDeDuracao +
"\nSinopse: " + sinopse;
}
}