1
resposta

[Reclamação] Diferença no retorno da API ao usar &episode= vs season — inconsistência no mapeamento com @JsonAlias

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.

1 resposta

Oi, Aldeny! Como vai?

Gostei da sua análise, importante quando você destacou a diferença entre os endpoints e como isso impacta diretamente na modelagem dos dados.

Sua explicação sobre o retorno resumido versus detalhado mostra uma leitura cuidadosa da API e ajuda a evitar confusões comuns nesse tipo de integração. Continue explorando esse tipo de comportamento das APIs, isso fortalece muito sua base.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!