Oi Gisele! Tudo bem?
Lembra que os dados que buscamos da API são dados dessa forma?
{
"Title": "The Name of the Game",
"Year": "2019",
"Rated": "TV-MA",
"Released": "26 Jul 2019",
"Season": "1",
"Episode": "1",
"Runtime": "60 min",
"Genre": "Action, Comedy, Crime",
"Director": "Dan Trachtenberg",
"Writer": "Eric Kripke, Garth Ennis, Darick Robertson",
"Actors": "Karl Urban, Jack Quaid, Antony Starr",
"Plot": "When a Supe kills the love of his life, A/V salesman Hughie Campbell teams up with Billy Butcher, a vigilante hell-bent on punishing corrupt Supes -- and Hughie's life will never be the same again.",
"Language": "English",
"Country": "United States, Canada",
"Awards": "N/A",
"Poster": "https://m.media-amazon.com/images/M/MV5BMzM4OTA4NDQtYWVlOC00NjkxLTk4NTEtNTY5ZDY4NTgwZjMyXkEyXkFqcGc@._V1_SX300.jpg",
"Ratings": [
{
"Source": "Internet Movie Database",
"Value": "8.7/10"
}
],
"Metascore": "N/A",
"imdbRating": "8.7",
"imdbVotes": "22583",
"imdbID": "tt7775902",
"seriesID": "tt1190634",
"Type": "episode",
"Response": "True"
}
Esse é um arquivo no formato JSON. Mas o nosso projeto em Java não entende o JSON da forma como ele está, o ideal é que as informações desse jSON sejam convertidas em uma classe/objeto, que é o que o Java entende. Para fazer essa conversão, podemos usar bibliotecas que já fazem isso, como Gson ou o Jackson. Com essas bibliotecas, conseguimos tanto receber o JSON e transformar em um objeto, quanto devolver um objeto no formato de Json.
No projeto, queremos tanto pegar os dados da API quanto guardar esses dados no banco. Poderíamos então ter essas duas coisas em uma classe só (nada te impede de fazer dessa forma), mas ficaria muito complexo de gerenciar. Por isso, separamos em duas classes diferentes, usando o SOLID, como você comentou.
Sobre a parte do ::NomeDaClasse, você pode me falar onde ele aparece? Que aí consigo te ajudar melhor.