Buscar este blog

Cargando...

Translate

Google+ Badge

lunes, 4 de julio de 2016

Google Cloud Endpoints - Parte 10

En esta decima entrega, les mostrare como consumir de manera local su Google Cloud Endpoints.

Primero tenemos que importar nuestras librerias cargadas a un repositorio maven local a través de Gradle, el prerequisito es crear un proyecto en android con las configuraciones por defectos o personalizadas que ustedes requieran.

Luego hay que ir al archivo "build.gradle (Module App)" y agregar las siguientes lineas:

compile([group: 'com.google.api-client', name: 'google-api-client-android', version: '1.22.0'])
compile ([group: 'com.indiant', name: 'ws-gestionmantenimiento', version: 'v1-1.22.0-SNAPSHOT'])
 

repositories {
    mavenCentral()
    mavenLocal()
}
 
Ver la siguiente imagen, donde resalte de color azul en que ubicación
del archivo debe ir:
 


Ahora hay que volver a sincronizar el gradle, dandole click en el
icono de la barra de herramientas.

No olvides agregar el siguiente permiso en tu archivo ANDROID MANIFEST.

<uses-permission android:name="android.permission.INTERNET" />
 
 
Ahora solo resta agregar el codigo que permite consumir nuestro api
rest generado por Google Cloud Endpoints.
 
Acontinuacion el codigo de la activity:
 
package com.indiant.android_indiant;

import android.content.Context;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.extensions.android.json.AndroidJsonFactory;
import com.google.api.client.googleapis.services.AbstractGoogleClientRequest;
import com.google.api.client.googleapis.services.GoogleClientRequestInitializer;
import com.indiant.ws.gestionMantenimiento.GestionMantenimiento;
import com.indiant.ws.gestionMantenimiento.model.Pais;
import com.indiant.ws.gestionMantenimiento.model.ReturnValue;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new EndpointsAsyncTask1().execute(this);
    }

    class EndpointsAsyncTask1 extends AsyncTask<Context, Void,ReturnValue> {
        private GestionMantenimiento myApiService = null;
        private Context context;

        @Override        protected ReturnValue doInBackground(Context... params) {
            if(myApiService == null) {  // Only do this once                GestionMantenimiento.Builder builder = new GestionMantenimiento.Builder(AndroidHttp.newCompatibleTransport(),
                        new AndroidJsonFactory(), null)
                        .setRootUrl("http://10.0.2.2:8888/_ah/api/")//COMENTAR LINEA SI TU BACKEND ESTA DEPLOYADO                        .setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() {
                            @Override                            public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException {
                                abstractGoogleClientRequest.setDisableGZipContent(true);
                            }
                        });
                myApiService = builder.build();
            }
            context = params[0];
            try {
                Pais bean=new Pais();
                bean.setIdPais("co");
                bean.setNombre("colombia");
                ReturnValue values=myApiService.insertarPais(bean).execute();
                return values;
            } catch (IOException e) {
                return null;
            }
        }

        @Override        protected void onPostExecute(ReturnValue result) {
                Toast.makeText(context,result.toString(), Toast.LENGTH_LONG).show();
        }
    }
}  
 
Ahora estamos listos para realizar las pruebas, entonces primero
debemos ejecutar el backend creado en eclipse y luego ejecutar la
app en android, si ya tienes el proyecto deployado en Google App
Engine comenta la siguiente linea:
 
.setRootUrl("http://10.0.2.2:8888/_ah/api/")//COMENTAR LINEA SI TU BACKEND ESTA DEPLOYADO

Una vez ejecutado obtendremos el siguiente resultado:


Como podemos ver en la imagen anterior, me devuelve un valor booleano,
además hay que comprobar si se guardo en el datastore local.


Bueno con esto hemos culminado la serie de articulos escritos para
Kiongo Technology. 
Antes de despedirme los animo a probar el método listar paises y 
comentan sus resultado.

Sin más me despido hasta la proxima consultoría que adquiera Kiongo
Technology con mi persona.

Escrito por:
Ronald Tejada

viernes, 1 de julio de 2016

Google Cloud Endpoints - Parte 9

En esta novena entrega, te enseñare como cargar las librerias cliente para android.

Para el desarrollo de este ejemplo necesitamos que tengas instalado Gradle y Android Studio, pues en esta etapa, usaremos gradle para cagar nuestra librería local a nuestro proyecto desarrollado en Android Studio.

En la octava entrega les mostre dos formas de generar las librerias, una con eclipse y la segunda con la herramienta endpoint que proporciona el SDK de Google App Engine, para el desarrollo de este ejemplo considere realizarlo con el archivo zip generado por endpoints.sh.



El primer paso es descomprimir el archivo zip, con lo cual obtendra un estructura como la que se muestra en la siguiente imagen.



Como se puede observar tengo un archivo "build.gradle", ademas de un readme.html, el cual documenta las instrucciones para poder cargar tu libreria en android studio o cualquier ide que use gradle.

Ahora vamos a cargar la libreria a un repositorio local maven que viene con la instalación de gradle. para poder realizar esto tendran que abril una shell y ubicar en la carpeta gestionMantenimiento que se observa en la imagen anterior, luego de estar ubicado en la carpeta ejecutaremos el comando gradle o si no lo tienes instalado y bien seteado para que te reconozca como comando interno del sistema operativo puedes usar la ruta absoluta como yo.

Entonces ejecutamos la siguiente linea:

/opt/gradle-2.13/bin/gradle install

En la siguiente imagen muesto como debería mostrarles una vez culminado la ejecución del comando:


Ahora ya estamos listos para cargar nuestra librería a nuestro proyecto android que será desarrollado en android studio.

Sugiero revisar el archivo readme.html para poder conocer más en la proxima entrega les enseñare como cargar su libreria android en android studio.

Escrito por:
Ronald Tejada

Entradas populares