Por exemplo passo um id e me retornar nome, email e telefone via retrofit
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Por exemplo passo um id e me retornar nome, email e telefone via retrofit
Oi Raphael, tudo bem?
Poderia me passar um exemplo? Pois o Retrofit permite realizar qualquer tipo de requisição que estamos acostumados a fazer via HTTP.
No exemplo tenta ser mais específico, por exemplo, uma request GET que vai mandar o valor do id via path/header/body e vai retornar os valores em JSON...
Abraços.
Por exemplo passo o email do usuário e me retorna Nome, telefone, idade, sexo do usuário que está em php com mysql e eu retorno com json via php
Oi Raphael, da pra fazer de várias formas.
A mais trivial possível, seria você criar o service e a call que vão representar essa sua requisição. Então basta apenas você definir o verbo HTTP e enviar o valor que deseja.
A sacada das requisições via Retrofit fica em saber o valor que você quer passar e o retorno que você espera.
Quando queremos passar um valor, podemos enviá-lo como corpo (body), cabeçalho (header) ou caminho da URL (path).
No retorno, temos diversas formas uma delas seria você esperar uma String e fazer uma conversão para algum objeto. Ou então, você já pode esperar a classe que representa o objeto que será devolvido.
Vou fazer um exemplo de como poderia realizar uma requisição na qual atende o que você precisa. Primeiro precisaria ter a classe modelo, nesse caso a classe Usuario:
public class Usuario {
private String email;
private String nome;
private String telefone;
private int idade;
//outros atributos junto com seus getters e setters
}
Em seguida, você criaria o service junto com a Call que já espera um Usuairo:
public interface UsuarioService {
public Call<Usuario> busca(String email);
}
Então agora o que precisa é só definir o verbo, junto com os parâmetros que serão enviados. Vou fazer o exemplo de uma requisição GET enviando o email via path:
public interface UsuarioService {
@GET(usuario/{email})
public Call<Usuario> busca(@Path("email") String email);
}
Pronto, agora a única coisa que precisa é executar essa call via execute ou enqueue. Recomendo sempre considerar o enqueue justamente porque ele funciona de forma assíncrona, portanto, não bloqueia a Thread principal.
Abraços.