Primeros pasos con la actualización2

Configuración

¿Qué es la actualización?

La página oficial de Retrofit se describe a sí misma como:

Un cliente REST con seguridad de tipos para Android y Java.

Esta biblioteca hace que la descarga de datos JSON o XML desde una API web sea bastante sencilla. Una vez que se descargan los datos, se analizan en un objeto Java antiguo simple (POJO) definido para cada solicitud utilizando cualquiera de los adaptadores/analizadores enumerados aquí.

Para propósitos de demostración estaríamos usando el analizador GSON

Configuración:

  1. Agregue permiso de Internet en manifest.xml:
 <uses-permission android:name="android.permission.INTERNET" />
  1. Agregue lo siguiente a su archivo build.gradle:
dependencies {
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'  
}
  1. Cree POJO(Modelo) adecuado en función de su respuesta Json:

    If your json response is:

{
    "CategoryModel": {
        "debug": "on",
        "window": {
            "title": "Sample Konfabulator Widget",
            "name": "main_window",
            "width": 500,
            "height": 500
        },
        "image": {
            "src": "Images/Sun.png",
            "name": "sun1",
            "hOffset": 250,
            "vOffset": 250,
            "alignment": "center"
        },
        "text": {
            "data": "Click Here",
            "size": 36,
            "style": "bold",
            "name": "text1",
            "hOffset": 250,
            "vOffset": 100,
            "alignment": "center",
            "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
        }
    }
}

Luego, puede usar un sitio web como JsonOnlineEditor o JsonView para formatear su json, lo que ayudará a crear su modelo. O use jsonschema2pojo para convertir su Json a POJO usando GSON anotaciones :

public class CategoryModel {
   
    @SerializedName("debug")
    private String debug;

    @SerializedName("window")
    private Window window;

    @SerializedName("image")
    private Image image;

    @SerializedName("text")
    private Text text;
}
  1. Luego, necesitamos una instancia de Retrofit que actúe como controlador para todas las solicitudes y respuestas.

    Note : We prefer to create this controller as singleton which is very helpful if we want to set some additional property of the client .

public static final String BASE_URL = "http://test.com"

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
  1. A continuación, cree la clase Interfaz donde defina todas las llamadas API con solicitud, tipo de respuesta y parámetros de solicitud para cada llamada. (Necesitamos crear una interfaz para administrar llamadas de URL como GET,POST..etc. )
public interface IPlusService {
    @GET("/api/category")
    Call<CategoryModel> getAllCategory();
}
  1. Crear cliente de red/solicitud con instancia de actualización:
IPlusService requestClient = retrofit.create(IPlusService.class);
  1. Llame a su servicio web en su Fragmento/Actividad:
requestClient.getAllCategory().enqueue(new Callback<ResponseBody>() {
    @Override
    public void onResponse(Call<CategoryModel> call, Response<CategoryModel> response) {
        // DO success handling 
    }

    @Override
    public void onFailure(Call<CategoryModel> call, Throwable t) {
        // DO failure handling 
    }
});

Buenos recursos:

  1. https://github.com/codepath/android_guides/wiki/Consuming-APIs-with-Retrofit

  2. http://www.vogella.com/tutorials/Retrofit/article.html

  3. http://www.androidhive.info/2016/05/android-working-with-retrofit-http-library/

  4. https://futurestud.io/tutorials/retrofit-getting-started-and-android-client