Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Android Annotations: consumir API REST

David Sebastián Manjón
  • Escrito por David Sebastián Manjón el 15 de Mayo de 2019
  • 1 min de lectura |
Android Annotations: consumir API REST
El reproductor de video será cargado en breves instantes.

Aprende paso por paso cómo hacer facilmente un cliente para consumir una API Rest desde el framework AndroidAnnotations.

Por qué emplear AndroidAnnotations

AndroidAnnotations es un framework que facilita mucho el desarrollo, y que a la hora de tener que crear un cliente API Rest, permite hacerlo simplemente creando una interfaz y colocando a método su anotación.

Cómo crear una API Rest y cómo instanciarla

Para ello crearemos un nuevo proyecto en Android Studio, seleccionando una actividad vacía y manteniendo la configuración que aparece por defecto.

Una vez creado el proyecto, lo siguiente que hay que hacer es añadir las dependencias de AndroidAnnotations y también Spring Android, las dos herramientas con las que vamos a crear nuestro cliente de API Rest.

Para ello abrimos el archivo build.gradle de la aplicación, y en la sección de dependencias se añaden las nuevas dependencias, para que el código quede de esta forma:

def AAVersion = '4.6.0'
def SAVersion = ‘2.0.0.M3’
def JVersion = ‘2.9.8’
dependencies {
    annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
    implementation "org.androidannotations:androidannotations-api:$AAVersion"
    annotationProcessor "org.androidannotations:rest-spring:$AAVersion"
    implementation "org.androidannotations:rest-spring-api:$AAVersion"
    implementation "org.springframework.android:spring-android-rest-template:$AAVersion"
    implementation "com.fasterxml.jackson.core:Jackson-databind::$JVersion"

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

Además vamos a tener que añadir el repositorio de Maven para poder bajar la sección de Spring Android. Para ello abrimos el archivo build.gradle del proyecto y cambiamos este código:

allprojects {
     repositories {
     google()
     jcenter()
}
             }

Por este otro:

allprojects {
    repositories {
             google()
             jcenter()
             maven {
                 url ‘https://repo.spring.io/libs-milestone’
                   }
                 }
            }

Una vez hechos los cambios, los sincronizamos y entonces podemos pasar a crear nuestro cliente para la API Rest.

Para ello vamos a crear un nuevo paquete llamado rest desde el menú Project, dentro de la carpeta app/java/com.example.myapplication con la opción New/Package:

Imagen 0 en Android Annotations: consumir API REST

Una vez creado, en el mismo necesitamos crear una interfaz, con la opción New/Java Class:

Imagen 1 en Android Annotations: consumir API REST

Le damos el nombre MyClient, elegimos que sea de tipo Interface y la creamos pulsando OK.

Una vez se abre el archivo, sustituiremos su código por defecto:

package com.example.myapplication.rest;

	public interface MyClient {
	}

Por este otro:

	package com.example.myapplication.rest;

	import org.androidannotations.rest.spring.annotations.Rest;

@Rest(rootUrl = "http://192.168.0.184:8080/types", converters = {MappingJackson2HttpMessageConverter.class })
	public interface MyClient {
	}

De esta forma tendríamos ya la definición de nuestro cliente API Rest, por lo que tendríamos que instanciarlo. Para ello vamos a tener que mejorar la MainActivity y modificar el archivo AndroidManifest.xml, cambiando este código:

<activity android:name=”.MainActivity”>

Por esta otro:

<activity android:name=”.MainActivity_”>

Con este cambio se accede directamente a la MainActivity generada por AndroidAnnotations en lugar de la MainActivity generada por defecto, y el error que aparece se corregirá automáticamente.

Volvemos al archivo MainActivity.java y cambiamos:

public class MainActivity extends AppCompatActivity {

@Override
protected void OnCreate(Bundle savedInstanceState) {
			super.OnCreate(savedInstanceState);
			setContentView(R.layout.activity_main);
    }
}

Por este código:

@EActivity(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {

@RestService
MyClient rest;

}

Así ya tendríamos instanciado nuestro cliente de API Rest, por lo que tendríamos que crear la interfaz e instanciarla.

En este curso de Android Annotations aprenderás a crear y consumir una API rest y trabajar concurrencia para dominar este framework para crear aplicaciones para Android.

curso-android-threads-apis

Recuerda que puedes comenzar este curso con tu suscripción de OpenWebinars. Si todavía no estás suscrito, aprovecha para hacerlo ahora.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Programador Android

Programador Android

carrera

Incluye 6 cursos:

  • Java 8 para programadores Java
  • Curso de Git
  • Curso de Introducción a la programación con Pseudocódigo

y 3 cursos más!

Duración: 45 horas y 25 minutos

Android Annotations: ViewById Annotation

Android Annotations: ViewById Annotation

Desarrollo móvil

23 de Abril de 2019

Aprende cómo instanciar fácilmente y paso a paso objetos de interfaz de usuario empleando el framework AndroidAnnotations.

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars