Por exemplo passo um id e me retornar nome, email e telefone via retrofit
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.