Verbos HTTP: Qual verbo HTTP usamos para obter dados e qual usamos para enviar dados novos?
Permissão: Qual permissão deve ser adicionada no AndroidManifest.xml para que o Retrofit funcione?
🟡 Médios
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).
Threading: O Retrofit (com Coroutines) precisa que você use withContext(Dispatchers.IO) manualmente na chamada, ou ele já faz isso por baixo dos panos?
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
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.