Retrofit





Estructura para tu modelo de Retrofit


Los archivos más importantes

ApiClient.Java
ApiService.Java
models
Api Service


Esta será la interfaz en la que declararemos los metodos de la api

public interface GitHubService {
@GET("/users/{user}/repos")
List<Repo> listRepos(@Path("user") String user);
}Api Service


Las cabeceras

@GET("/users/{user}/repos")
@GET("/users/list?sort=desc")Las anotaciones de los métodos, de primera instancia, nos permiten manipular el tipo de método y la URL a la cuál haremos la petición.
Api Service


Argumentos del método

@POST("/users/new")
void createUser(@Body User user, Callback<User> cb);Los argumentos que contenga el método de la petición definen por medio de anotaciones qué papel jugará ese argumento.
@GET("/group/{id}/users")
List<User> groupList(@Path("id") int groupId, @Query("sort") String sort);Api Service


Peticiones sincronas y asíncronas

@POST("/users/new")
void createUser(@Body User user, Callback<User> cb);Esto lo define el valor que va a devolver la función.
@GET("/group/{id}/users")
List<User> groupList(@Path("id") int groupId, @Query("sort") String sort);void
Asíncrona
Object
Sincrona
Api Service


RxObservable

@GET("/users/list")
Response userList();
@GET("/users/list")
void userList(Callback<Response> cb);
@GET("/users/list")
Observable<Response> userList();Así mismo podemos definir un observador de RxJava para obtener la respuesta.
Api Client


En esta clase definiremos el comportamiento del objeto encargado de realizar las peticiones.
Para un mejor manejo de este objeto utilizamos el patrón Singleton.

APP
Client
Server
Api Client


El Truco del Singleton está en el constructor y en el método getInstance

public class ApiClient {
public static ApiClient API_CLIENT;
public static ApiClient getInstance(Context context) {
if(API_CLIENT == null)
API_CLIENT = new ApiClient()
return API_CLIENT
}
private ApiClient (Context context){
//Constructor
}
}Retrofit
By Petter Hdz
Retrofit
- 589