Interfaz para Retrofit2
Actualmente la mayoría de las aplicaciones Móviles se conectan con funciones que permiten la consulta, el intercambio de datos o mensajes (API), hay varias maneras en las que se pueden consumir pero en Android podemos utilizar en especifico Retrofit2.
Retrofit2
Cliente REST para Android y Java desarrollada por Square. Hace mas sencillo la obtención de datos JSON normalmente a través de GSon y utiliza la biblioteca OkHttp para las solicitudes HTTP. Permite hacer peticiones de tipo GET,POST,PUT,PATCH,DELETE y HEAD.
Al implementarlo usamos básicamente:
1.Modelo para asignar los datos JSON
2.Interfaces que define las peticiones HTTP
3.Instancia que utiliza la interfaz y la API para la operación HTTP (Service).
Interfaces para las Peticiones HTTP
Existen varios tipos de peticiones siendo los mas comunes GET, POST,PUT,DELETE.
Para especificar la solicitud y la URL tienen una base modelo que podemos cambiar de acuerdo a nuestra petición.
@Headers({ Si tu petición necesita cabeceras }) @PETICION("URL") Call<BaseModel> Nombre de mi petición(@Body nombre del modelo model);
Petición GET
Este tipo de solicitud es comúnmente utilizada para consultar información anteriormente guardada.
En la parte de @Headers ponemos lo que se necesite en la cabecera, @GET especificamos la URL o ruta por la cula se comunicara con la API.
Call es en si la llamada en la cual tenemos que indicarle el modelo de respuesta <BaseModel> el nombre de mi interfaz y algo importante es el dato incluido como @Path este parámetro es usado para pasar la información adicional que necesite la interfaz para devolvernos lo correcto, en este caso identificar el usuario del cual estamos solicitando el perfil.
@Headers({ "service_version: "+ version }) @GET("api/Usuario/Perfil/{id}") Call<BaseModel> getPerfil(@Path("id")String id_person);
Petición POST
Esta solicitud se utiliza para crear un registro nuevo. En este caso encontramos dos cosas nuevas, la primera @Body contiene el modelo que se llenara con los datos necesarios para crear el registro y @Header es un parametro que obtenemos del usuario o de una BD pero que no va en la URL sin no en las cabeceras.
@Headers({ "Content-Type: application/json", "service_version: "+ version }) @POST("/api/usuario/{unique_person}/producto") Call<BaseModel> CrearProducto(@Body CrearProductoModel model, @Header("Authorization") String token, @Path("unique_person") String unique);
Petición PUT
La usamos normalmente para modificar un registro existente. Esta llamada tiene los mismos parámetros que las anteriores pude contener @body, @Path y @Header.
@Headers({ "Content-Type: application/json", "service_version:" +version }) @PUT("/api/Usuario/Producto") Call<BaseModel> CambiarProducto(@Body ProductoModel model, @Header("Authorization") String token);
Estas son solo tres de las principales peticiones utilizadas, pero bajo el mismo modelo podemos agregar las demás.
Espero que pueda servirles de guía para poder utilizar Retrofit2. Si desean mas entradas sobre el tema dejen sus solicitudes en los comentarios.
Buen post, si me gustaria que lo ampliaras, mas sobre las peticion de autenticacion por token
Muchas gracias, tomaremos en cuenta tu sugerencia para dedicar una entrada para hablar sobre la autenticación por token.
Esperamos que la información haya sido de ayuda.