Pular para conteúdo

Exercícios 10 - Consumo de API REST 🌍

🟢 Fáceis

  1. Verbos HTTP: Qual verbo HTTP usamos para obter dados e qual usamos para enviar dados novos?
  2. Permissão: Qual permissão deve ser adicionada no AndroidManifest.xml para que o Retrofit funcione?

🟡 Médios

  1. Conversão: O que acontece se o campo no JSON for "user_name" (snake_case) e na sua data class for val userName: String (camelCase)? Como o Retrofit/Gson sabe mapear isso? (Pesquise sobre anotação @SerializedName).
  2. Threading: O Retrofit (com Coroutines) precisa que você use withContext(Dispatchers.IO) manualmente na chamada, ou ele já faz isso por baixo dos panos?
  3. Autenticação: Se uma API exige um token JWT no cabeçalho Authorization, como você configuraria o Retrofit para enviar esse token em todas as requisições sem repetir código? (Pesquise sobre OkHttp Interceptors).

🔴 Desafio

  1. Status Code: Se a API retornar erro 401 (Não Autorizado) ou 500 (Erro no Servidor), como você capturaria isso no bloco try/catch do ViewModel para exibir uma mensagem adequada ao usuário?

📚 Gabarito e Soluções Comentadas

Gabarito Explicado ### Questão 1: Verbos HTTP **Resposta Comentada:** - **Fundamentação:** No contexto de **Consumindo API REST (Retrofit)**, o conceito abordado (Verbos HTTP) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: Permissão **Resposta Comentada:** - **Fundamentação:** No contexto de **Consumindo API REST (Retrofit)**, o conceito abordado (Permissão) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: Conversão **Resposta Comentada:** - **Fundamentação:** No contexto de **Consumindo API REST (Retrofit)**, o conceito abordado (Conversão) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: Threading **Resposta Comentada:** - **Fundamentação:** No contexto de **Consumindo API REST (Retrofit)**, o conceito abordado (Threading) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 5: Autenticação **Resposta Comentada:** - **Fundamentação:** No contexto de **Consumindo API REST (Retrofit)**, o conceito abordado (Autenticação) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 6: Status Code **Resposta Comentada:** - **Fundamentação:** No contexto de **Consumindo API REST (Retrofit)**, o conceito abordado (Status Code) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.