3
respostas

API não bate com o curso

Eu consegui contornar o erro do Json jogando a variável criada para dentro do bloco de runCatching: val resultado = runCatching { val novoInfoJogo = gson.fromJson(json, InfoJogo::class.java) novoJogo = Jogo( novoInfoJogo.info.title, novoInfoJogo.info.thumb

O problema é que conforme vocês avançaram, criaram uma nova Classe para fazer esse consumo da API. Quando tentei fazer o mesmo, tudo desandou. Então mantive toda a estrutura da chamada da API na própria Main e consegui continuar o curso. Porém fiquei com essa dúvida, de como poderíamos solucionar esse problema....Como tratar essa exceção do Json em uma classe separada e ainda sim conseguir vincular com a ID para fazer a busca e executar o programa ?

3 respostas

Olá!

Manda o código pra te ajudar melhor!

    println("Qual jogo você está buscando hoje ? ")
    val busca = leitura.nextLine()

    val endereco = "https://www.cheapshark.com/api/1.0/games?id=$busca"
    val client: HttpClient = HttpClient.newHttpClient()
    val request = HttpRequest.newBuilder()
        .uri(URI.create(endereco))
        .build()
    val response = client
        .send(request, HttpResponse.BodyHandlers.ofString())

    val json = response.body()
    val gson = Gson()

    var novoJogo: Jogo? = null

    val resultado = runCatching {
        val novoInfoJogo = gson.fromJson(json, InfoJogo::class.java)
        novoJogo = Jogo(
            novoInfoJogo.info.title,
            novoInfoJogo.info.thumb
        )
    }
    resultado.onFailure {
        println("Jogo não encontrado, por favor, tente novamente...")
    }

eu tratei usando o status de retorno, pois agora apresenta o código 404