Ir al contenido principal

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

Comentarios

Entradas más populares de este blog

Emprendiendo en la Nube - Arquitectura y Patrón de Diseño

Arquitectura Java para Desarrollo con GAE y GWT Soñando con el trabajo ideal, el cual sería ganar dinero por investigar, pues es lo que me gusta y  divierte, decidí emprender con una startup Tecnológica que pretende hacer de los lugares desconocidos y preciosos en lugares conocidos y visitados. Para  desarrollar una startup que pretende tener repercusión mundial, se necesita ser ordenado desde un principio, la arquitectura de software y el marco de trabajo en el proyecto es tu primera valla a superar. No pretendo criticar el desarrollo ágil por la poca documentación que genera, pienso que deberíamos tomar sus técnicas enriquecedoras, por eso combino el desarrollo clásico con el desarrollo ágil. Ahora ustedes se preguntarán por qué hablo de desarrollo ágil y clásico, si el título dice “Arquitectura Java para Desarrollo con GAE y GWT”, pues tiene mucha relación, pues los desarrolladores estamos acostumbrados a tomar  frameworks y buenas prácticas de diseño y des...

create kvm Ubuntu 20.04 with virsh by jofrantoba

wget -bqc https://mirror.freethought-internet.co.uk/ubuntu-releases/20.04/ubuntu-20.04-live-server-amd64.iso qemu-img create -f qcow2 /opt/images/oracle19c-vm.qcow2 200G sudo virt-install --name vm_ubuntu20_freenx --ram 2048 --vcpu 2 --disk path=/opt/images/ubuntu20_freenx-vm.qcow2 --os-type linux --os-variant ubuntu20.04 --network bridge=br2 --graphics vnc,listen=0.0.0.0 --console pty,target_type=serial --cdrom '/opt/iso/ubuntu-20.04-live-server-amd64.iso' Written by @jofrantoba

Extendiendo espacio de la partición raíz en linux en particiones estándar KVM - Debian 10

Ojo pestaña y ceja: Cuando realizas particiones estandar en Linux, la última partición que debes agregar es la raíz y esta debe ocupar los últimos sectores del disco. Esto porque cuando quieras extender la raíz(/) no te dará dolores de cabeza. Aquí un ejemplo en KVM /dev/vda1 swap 8G /dev/vda2 /boot 1G /dev/vda3 / 11G Extendiendo un disco virtual en qemu para KVM * Clonar KVM virt-clone --original vm_debian10_t2micro_ps --name vm_debian10_t2micro_servercapedwarf_one --file /opt/images/debian10_capedwarf_one-vm.qcow2 * Información de ubicación de disco virtual del kvm virsh domblklist vm_debian10_t2micro_servercapedwarf_one * Información de disco virtual virt-filesystems --long -h --all -a /opt/images/debian10_capedwarf_one-vm.qcow2 qemu-img info /opt/images/debian10_capedwarf_one-vm.qcow2  * Incrementar tamaño de disco virtual de 20G a 30G qemu-img resize /opt/images/debian10_capedwarf_one-vm.qcow2 +10G virsh blockresize vm_debian10_t2micro_servercapedwarf_one /opt/images/debian10_...