¿Cómo funciona un Servicio Web en Android?
Clase 82 de 96 • Curso Definitivo de Android 2016
En los próximos capítulos consumiremos un API Rest y para esto es muy importante entender cómo se da este proceso en Android.
En mi tiempo como desarrolladora e instructora he escuchado mucho la pregunta ¿Cómo integro una base de datos MySQL en Android? El manejador oficial de bases de datos en Android es SQLite, por lo tanto esta pregunta me hace pensar que probablemente haya una confusión en el termino y en el requerimiento que les están haciendo a ustedes como devs de Android.
En esta capitulo resolveremos esa duda y entenderemos todo el proceso que debemos realizar para que una base de datos construida con MySQL, Oracle, SQL Server, etc. pueda convivir con Android
Comenzaremos diciendo: siempre que necesitemos construir una aplicación móvil cuyos datos no vivan en la app es decir, necesitemos mostrar información traída de internet, en todos estos casos usaremos un Servicio Web.
En esta imagen te muestro la manera como esta magia funciona.
Como observas existen 4 personajes, te los enumero a continuación.
1. Clientes 2. Internet 3. Web Server 4. Base de Datos
1. Clientes
Los Clientes son básicamente todas aquellas aplicaciones que necesitan mostrar datos de internet, puede ser una aplicación móvil como es en nuestro caso con Android, un sitio y/o sistema web y/o de escritorio. Incluso pueden funcionar ++todos simultáneamente.++
Haz escuchado ese dicho de “Al Cliente lo que pida” bueno, básicamente los clientes se encargarán de pedir, pedir y pedir información para mostrarla en sus interfaces gráficas. Los clientes también pueden mandar datos para que estos sean almacenados o modificados.
La información que recibe el cliente tiene que ser lo más simple y ordenada posible, por eso, seguramente habrás escuchado del término JSON (JavaScript Object Notation) y XML (eXtensible Markup Language), bueno, estos términos son básicamente formas o formatos de presentar y ordenar la información, por eso es común escuchar “la información viene o está en formato JSON”.
2. Internet
Internet es el puente de comunicación que existirá entre el cliente y cualquier otra cosa, es el camino donde se propaga la información y todo se hace a través del protocolo HTTP / HTTPS. Tomando en cuenta que la información viaja en internet, en el camino puede haber interceptores que quieran leer nuestros datos o alterarlos, por eso es recomendable que la información viaje encriptada pues es una manera de protegerla, para esto, lo mejor es usar el protocolo HTTPS (Hypertext Transfer Protocol Secure) en lugar de HTTP.
3. Web Server
El Web Server es la mente maestra de la información, es quien controla sus entradas y salidas, los conocidos Request y Response (peticiones y respuestas).
Para que el Web Server pueda funcionar inteligentemente es necesario que tenga un Software o Sistema que interprete estas peticiones, haga algo con los datos y devuelva una respuesta. La recomendación es que estas aplicaciones sean construidas como API’s pues así nos aseguramos que cumplan especificaciones de Programación Orientada a Objetos lo cual es muy importante para mantenerlo lo más natural e intuitivo posible. La mejor forma de construir este software es usando los estándares de API REST de los cuales te contaré más en el ++siguiente capítulo++.
El punto de entrada a esta API será por medio de una URI (Uniform Resource Identifier) un identificador de recursos único que contiene una URL (Uniform Resource Locator) el localizador uniforme de recursos, así cuando nuestro cliente haga una petición por medio de una URI sabremos que recurso nos están solicitando.
Un ejemplo podría ser https://platzi.com/cursos/ gracias a esta URI entendemos que necesita el recurso (objeto) cursos.
4. Base de Datos
Las bases de datos son un elemento muy importante en todo este proceso, pues aquí almacenamos toda nuestra información, esta debe estar sumamente cuidada y estructurada para que cuando nos hagan consultas la base de datos responda muy rápido.
Estas bases de datos pueden estar construidas con casi cualquiera de los manejadores más famosos como MySQL, Oracle, Postgre, SQL Server, etc. no hay uno mejor ni peor, todos tienen sus ventajas, cuéntame ¿cuál te gusta más a ti? o ¿cuál has usado?.
Estas bases de datos contendrán la información principal de toda la lógica de negocio de nuestro proyecto, como te puedes imaginar será mucha información, la cual no puede vivir en el móvil, pues no toda es requerida. Es valido tener bases de datos en el móvil pero estas deben componerse de ++información muy precisa++ que consideremos importante sólo en lapsos de tiempo en los que el dispositivo ++no tiene internet++ para mantener la persistencia.
¡Retomemos todo lo que aprendimos!
En este momento ya conoces un poco más a detalle cada elemento, quiero explicarte cómo todos se unen. Imagina que queremos obtener todos los cursos que imparte Platzi:
1. Uno de nuestros clientes hará una petición al API Rest de Platzi, a través de una URI. https://platzi.com/cursos/
2. La petición viaja por internet a través del protocolo HTTPS
3. La petición llega al servidor, el API Rest analiza la URI y define que método se encargará de realizar la consulta a la base de datos y procesar la información.
4. El server devuelve la información en formato JSON o XML para viajar de nuevo a través de internet y llegar al cliente.
5. El cliente procesa la información y la muestra en su interfaz gráfica.
Con esto ya hemos aprendido un ciclo completo de cómo funcionan las aplicaciones online en Android y el valioso papel que tiene un Servidor Web para mantener la persistencia de la información una capa más allá del almacenamiento interno del dispositivo.
Te veo en el siguiente capítulo para explicarte cómo funciona un API Rest, y eso no es todo, se pone más emocionante pues en los siguientes posts te enseñaremos a trabajar con una API Rest real y enlazarla a tu dispositivo Android con Retrofit.
¿Quieres continuar? Cuéntame si te quedó todo claro y si tienes dudas escríbelas, todos queremos ayudar a resolverlas :)