O seviço http://ec2-18-215-156-13.compute-1.amazonaws.com:8080/ está fora do ar, como muitos já informaram aqui no forum, mas para não deixar de fazer as aulas, podemos utilizar APIs públicas e usar o conhecimento adquirido adaptando nossas classes.
Aqui na Alura mesmo, já vi utilizando esta API de filmes: https://www.omdbapi.com/
As minhas classes adaptadas com esta API ficaram assim:
HttpConfiguration
@Configuration
class MovieHttpConfiguration {
companion object {
const val BASE_URL = "https://www.omdbapi.com/"
const val API_KEY = "SUA_CHAVE_GERADO_NO_SITE_OMDBAPI"
}
private fun buildClient() = OkHttpClient.Builder().build()
private fun buildRetrofit() = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(buildClient())
.build()
@Bean
fun movieHttpService(): MovieHttpService = buildRetrofit().create(MovieHttpService::class.java)
}
MovieHttp
import com.google.gson.annotations.SerializedName
data class MovieHttp(
@SerializedName("imdbRating") val imdbRating: Double,
@SerializedName("imdbID") val imdbID: String,
@SerializedName("Title") val title: String,
)
MovieHttpService
@Service
interface MovieHttpService {
@GET("/")
fun getByImdb(
@Query("apikey") apiKey: String,
@Query("i") imdbId: String
): Call<MovieHttp>
}
Aqui eu só me atentei em botar as classes Https, que são as informações novas mencionadas no curso.
Neste repositório há diversas APIs públicas e ativas para podermos fazer os testes, só escolher e adaptar o código: https://github.com/public-apis/public-apis
Aqui funcionou perfeitamente.