Descrição:
Durante o curso, notei um ponto que pode gerar confusão ao consumir a API do OMDb API e mapear os dados com Jackson.
No início, ao criarmos o DadosEpisodio, utilizamos a URL com o parâmetro:
&season=1&episode=1
Nesse caso, a API retorna um objeto detalhado do episódio, contendo informações completas como:
Runtime
Director
Writer
Actors
Plot
Ratings
entre outros
Ou seja, um payload rico em dados.
Porém, quando passamos a trabalhar com DadosTemporada, utilizamos apenas:
&season=1
E mapeamos com:
@JsonAlias("Episodes")
List<DadosEpisodios> episodios;
Nesse cenário, a API retorna uma lista simplificada de episódios, onde cada item contém apenas:
Title
Released
Episode
imdbRating
imdbID
Problema / Ponto de Confusão
Se o aluno modelar o DadosEpisodio esperando os mesmos campos detalhados do endpoint com &episode=, ao reutilizar esse mesmo modelo dentro de DadosTemporada, muitos campos virão null ou inexistentes.
Isso acontece porque:
A API possui dois formatos diferentes de resposta
O endpoint de temporada (season) retorna um resumo
O endpoint de episódio (season + episode) retorna o detalhamento completo
Como interpretar corretamente
&season=1 → retorna lista resumida de episódios
&season=1&episode=1 → retorna detalhes completos de um episódio
Boa prática sugerida
Separar os modelos:
DadosEpisodioResumo → usado dentro de DadosTemporada
DadosEpisodioDetalhado → usado quando chamar com &episode=
Ou então, complementar os dados com uma segunda chamada usando o imdbID.
Conclusão
Não é erro de mapeamento com @JsonAlias, mas sim uma diferença no contrato da API dependendo do endpoint utilizado
Esse detalhe pode passar despercebido e gerar confusão na modelagem dos records.