SlideShare una empresa de Scribd logo
Automatic API REST
+
Notificaciones PUSH
Alejandro Esquiva Rodríguez
(@alex_esquiva)
Automatic API REST: Simplifica tus consultas by Geeky Theory is
licensed under a Creative Commons Reconocimiento-
NoComercial-CompartirIgual 4.0 Internacional License.
Objetivo del Taller
Herramientas que vamos a usar
• http://androidparty.geekytheory.com/material.rar
• http://www.easyphp.org/save-easyphp-devservervc9-latest.php
Automatic API REST
¿Qué es una API REST?
API
• Una API representa una interfaz de comunicación entre componentes de
software.
¿Qué es una API REST?
REST
• Transferencia de estado Representacional.
• Está orientado a transferencia de recursos.
• Arquitectura cliente/servidor sin estado: ni el cliente ni el servidor necesitan
recordar ningún estado de las comunicaciones entre mensajes.
• Hace uso del protocolo HTTP.
• Cada recurso es únicamente accesible a través de su URI.
• Los datos son generalmente ofrecidos en formato JSON o XML .
• Control de errores.
¿Qué es una API REST?
Cada recurso es accesible a través de una única URI.
URIs
¿Qué es una API REST?
El cliente hace peticiones al
servidor usando el protocolo
HTTP. El servidor le responde a
través del mismo protocolo.
Arquitectura Cliente - Servidor
¿Qué es una API REST?
• GET
Pedir información a un recurso.
• POST
Create: Orden para insertar información.
Update: Modificar información.
• PUT
Create: Orden para insertar información.
Update: Modificar información.
• DELETE
Eliminar información del servidor.
Operadores API REST
¿Qué es una API REST?
JSON
Formatos de salida
XML
¿Qué es una API REST?
Ejemplos de APIs
Android y APIs
Necesidad
• Base de datos externa.
• Interacción de datos entre servidor y cliente.
• Aplicaciones multiplataforma
Automatic API REST
¿Qué es?
• Una herramienta Open Source.
• Crea una completa API de tu base de
datos MySQL o MariaDB.
• Proporciona una red automática de
enlaces que proporcionan la información
en JSON o XML.
• Intercambia información entre distintos
lenguajes de programación.
• Panel de control para gestionar la
privacidad de las tablas o campos de la
base de datos.
http://AutomaticApiRest.info
Automatic API REST
Especificaciones
• Creación de enlaces únicos para cada recurso (URIs)
• Gestión de privacidad de las tablas.
• No altera la estructura de la base de datos.
• Obtener datos (GET) en formato JSON y XML.
• Insertar datos (POST) a través de enlaces únicos.
• Modificar Datos (POST) a través de enlaces únicos.
• Gestión de errores.
Automatic API REST
Modo de empleo
• Aplicación de servidor
1. Instalar Automatic Api Rest en un servidor con soporte para PHP y MySQL.
2. Configurar el archivo config.php con los credenciales del servidor y apuntar a
nuestra base de datos.
3. Entrar en el panel de control con los credenciales que hemos indicado en el archivo
config.php
4. Indicar que tablas y campos son privados, deshabilitando la opción de
obtener/añadir/modificar/eliminar datos.
Automatic API REST
Modo de empleo (GET)
• Aplicación de cliente (java, Python, c++,…)
1. Seleccionar los enlaces que queremos consultar desde el panel de control de
Automatic API Rest.
2. Obtener el json/xml de la petición.
3. Parsear datos obtenidos.
Automatic API REST
Modo de empleo (POST)
• Aplicación de cliente (java, Python, c++,…)
1. Seleccionar el enlace donde queremos enviar la información.
2. Preparamos un json o xml (también se puede insertar desde parámetros POST) con
los datos a insertar o modificar.
3. Enviar la petición
4. Obtenemos la respuesta con los resultados de la consulta
Cuando Usar Automatic API REST
• ¿Tienes una aplicación que necesite obtener datos de
una base de datos externa?
• ¿Tienes una aplicación que sea multiplataforma?
• ¿Quieres ahorrar tiempo en el desarrollo de una API?
Ejemplo de uso: Base de datos
Descarga de la base de datos de prueba.
http://dev.mysql.com/doc/index-other.html
• Base de datos: World
• Número de tablas: 3
• city: 4079 filas
• country: 239 filas
• countrylanguage: 991 filas
city
countrylanguage
country
Ejemplo de uso: Instalación
1. Descargamos Automatic API REST.
2. Extraer el zip y subir todo el directorio a la raíz principal
de vuestro servidor.
3. Abrir el archivo config.php y rellenar todos los campos
con los credenciales de la base de datos.
4. Visitar
http://tudominio.com/AutomaticaApiRest
Ejemplo de uso: Config.php
• SERVER: localhost
• USER: Usuario de la base de datos
• PASS: Contraseña del usuario de la base de datos
• DB: Base de datos a la que queremos apuntar
• USERADMIN: cuenta de administrador de AAR
• PASSADMIN: contraseña de administrador
Ejemplo de uso: Log In
http://tudominio.com/AutomaticaApiRest
Ejemplo de uso: Panel de Control
Ejemplo de uso: Navegación
Home: Enlace al inicio del panel de control.
Documentation: Documentación del proyecto. [En Construcción]
Black List: Gestión de las tablas privadas.
GitHub: Enlace al proyecto en GitHub
Close: Cierre de la sesión.
Ejemplo de uso: Gestión de tablas
Table Name: Nombre de la tabla de la base de datos.
API Link: Dirección única del recurso donde vamos a consultar todos los datos en formato JSON
de la tabla.
Items: Número de Items que tiene la tabla.
Show Table: Mostrar una tabla con los datos de la tabla seleccionada.
Privacity: Esta casilla muestra si la tabla es pública o privada, en caso de que sea privada no se
podrá ni consultar ni gestionar la tabla.
Ejemplo de uso: Gestión de campos
Column: Nombre del campo de la tabla seleccionada.
API Link: Enlace que genera un JSON con toda la información del campo encapsulado.
Show Table: Ver una tabla con los datos del campo seleccionado.
Select: Consulta personalizada (Ver siguiente punto).
Privacity: Privacidad del campo.
Ejemplo de uso: Consulta Personalizada
Observamos que podemos personalizar la consulta de datos, si por ejemplo sólo nos interesa el ID
y el nombre de los últimos 5 registros de la tabla city ordenados por el campo Name generamos
un enlace que exactamente nos ofrezca eso.
Ejemplo de uso: Black List
La Black List muestra todos las tablas y columnas que no permitimos ni obtener ni insertar datos.
Desde esta misma tabla podemos eliminar los registros de la Black List.
Ejemplo de uso: Salida JSON
{"data":[{"0":"u00b4s-Hertogenbosch","Name":"u00b4s-
Hertogenbosch","1":"Noord-Brabant","District":"Noord-
Brabant","2":"129170","Population":"129170"},{"0":"u0160umen
","Name":"u0160umen","1":"Varna","District":"Varna","2":"9468
6","Population":"94686"},{"0":"u0160tu0161olkovo","Name":"u
0160tu0161olkovo","1":"Moskova","District":"Moskova","2":"104
900","Population":"104900"},{"0":"u0160ostka","Name":"u0160
ostka","1":"Sumy","District":"Sumy","2":"90000","Population":"90
000"},{"0":"u0160iauliai","Name":"u0160iauliai","1":"u0160iauli
ai","District":"u0160iauliai","2":"146563","Population":"146563"}]
,"dbInfo":["Name","District","Population"]}
Ejemplo de uso: Aplicación Cliente - Java
Obtener información en JAVA
• Creación de una clase para la
obtención y gestión de datos.
• Creación de métodos
necesarios para parsear JSONs
y obtener los datos a través de
un enlace dado.
Ejemplo de uso: Aplicación Cliente - Java
getJSON
• Obtiene un JSON a través de
un enlace dado
Ejemplo de uso: Aplicación Cliente - Java
getDataStringArray
• Hace uso de la librería json-simple-
1.1.1.jar
• Devuelve un array multidimensional
de Strings con la información del
JSON
Ejemplo de uso: Aplicación Cliente - Java
setData
Ejemplo de uso: Aplicación Cliente - Java
Ejemplo 1: Obtención de un dato
Ejemplo de uso: Aplicación Cliente - Java
Ejemplo 2: Inserción de datos
Ejemplo de uso: Aplicación Cliente - Java
Ejemplo 3: Código de errores [Invalid Parameters]
Ejemplo de uso: Aplicación Cliente - Java
Ejemplo 4: Código de errores [Unauthorized]
Campo privada: CountryCode
Automatic API REST (alpha/beta)
Actualmente Automatic API REST es un projecto alpha, falta implementar mejoras y
crear una documentación para cada tipo de lenguaje.
Líneas Futuras de AAR
• Documentación de cada plataforma
• Creación de librerías para cada plataforma que facilite el uso de AAR
• Implementación de seguridad con OAUTH 2.0
• Dar soporte a consultas complejas, WHERE, INNER, etc.
• Escoger permisos de cada tabla/campo, elegir permisos de cada campo.
• Gestión óptima de URIs
Proyecto Open Source
• Automatic API REST es un proyecto
Open Source, todo el mundo es
bienvenido a colaborar.
• Para colaborar, enviar directamente
vuestros pull request o enviar un correo a
alejandro@geekytheory.com
Notificaciones PUSH
Ecosistema
1. El dispositivo Android envía el ID de aplicación
de GCM.
2. El servicio GCM devuelve un Id de registro
único por aplicación y dispositivo.
3. Enviamos este id a nuestra aplicación de
servidor.
4. Almacenamos el id en la base de datos
externa.
5. Si queremos enviar una notificación,
obtenemos el id de la base de datos y
enviamos el mensaje a GCM.
6. GCM enviará el mensaje a nuestra aplicación.
Objetivo del Taller
Pasos a seguir
1. Registrarse en Google Cloud Messaging (GCM) desde Google API
Console y obtener el Sender ID y la API key.
2. Crear una base de datos donde almacenaremos los ids de los usuarios.
3. Instala Automatic Api Rest (Opcional) y apuntar a la base de datos creada.
4. Crear una aplicación de servidor donde este a la escucha de ordenes para
enviar notificaciones PUSH.
5. Crear una aplicación de cliente (Android) para obtener los Ids y
almacenarlas en la base de datos y poder enviar notificaciones.
Obtener Sender ID y API Key
1. https://code.google.com/apis/console
Obtener Sender ID y API Key
2. Obtener Sender ID:
Obtener Sender ID y API Key
3. Activar API
Obtener Sender ID y API Key
4. Activar Google Cloud Messaging for Android
Obtener Sender ID y API Key
5. Ir a Credenciales
Obtener Sender ID y API Key
6. Generar API Key
Creación de una base de datos externa
Instalamos Automatic API REST
Crear una aplicación de servidor para enviar Notificaciones
sendNotification.php
Aplicación Android
Aplicación Android
Librerias
https://dl-ssl.google.com/android/repository/gcm_r03.zip
GCM
https://json-simple.googlecode.com/files/json-simple-1.1.1.jar
json-simple
Aplicación Android
AndroidManifest.xml
Aplicación Android
Config.java
Aplicación Android
AutomaticApiRestClient.java
Aplicación Android
Controller.java
Aplicación Android
RegisterActivity.java
Aplicación Android
ListviewActivity.java
Aplicación Android
SendMessageActivity.java
Aplicación Android
GCMIntentService.java
Referencias
• Tutorial sobre Notificaciones PUSH
• http://androidexample.com/Android_Push_Notifications_using_Google_Cloud_Messaging_GCM/index.php?view=
article_discription&aid=119&aaid=139
• Serie de tutoriales sobre JSON
• http://geekytheory.com/category/geeky-theory-2/tutoriales-2/programacion-web/json/
• Tutorial sobre Automatic Api Rest
• http://geekytheory.com/automatic-api-rest/
• Serie de tutoriales sobre JAVA – PHP –MYSQL
• http://geekytheory.com/category/java-php-mysql/
• Tutoriales Sobre PHP & MySQL
• http://geekytheory.com/category/geeky-theory-2/tutoriales-2/programacion-web/php-mysql/
Gracias
Alejandro Esquiva
Rodriguez
/aesquiva
http://geekytheory.com
@alex_esquiva @GeekyTheory
http://AutomaticApiRest.info
/geekytheory

Más contenido relacionado

La actualidad más candente

Importancia de papeles de trabajo de auditoria
Importancia de papeles de trabajo de auditoriaImportancia de papeles de trabajo de auditoria
Importancia de papeles de trabajo de auditoria
josephpaz10
 
Deterioro de inventarios
Deterioro de inventariosDeterioro de inventarios
Deterioro de inventarios
rrvn73
 
Impuesto de bienes inmuebles en PANAMÁ
Impuesto de bienes inmuebles en PANAMÁImpuesto de bienes inmuebles en PANAMÁ
Impuesto de bienes inmuebles en PANAMÁ
marlenet26
 
Muestreo en una auditoría
Muestreo en una auditoríaMuestreo en una auditoría
Muestreo en una auditoría
aalcalar
 
Seccion 30
Seccion 30Seccion 30
Seccion 30skymaz
 
Analisis de-los-estados-financieros
Analisis de-los-estados-financierosAnalisis de-los-estados-financieros
Analisis de-los-estados-financieros
KLARBP
 
Papeles de trabajo 2
Papeles de trabajo 2Papeles de trabajo 2
Papeles de trabajo 2
Nombre Apellidos
 
Informe de auditoria
Informe de auditoriaInforme de auditoria
Informe de auditoriaEdith Lopez
 
Como interpretar un informe de auditoría
Como interpretar un informe de auditoríaComo interpretar un informe de auditoría
Como interpretar un informe de auditoría
Ángel Matoso
 
Contribuyentes formales y libros de iva
Contribuyentes formales y libros de ivaContribuyentes formales y libros de iva
Contribuyentes formales y libros de iva
frank gregrory rojas manzanilla
 
SEMINARIO PLANIFICCIÓN EJECUCIÓN.ppt
SEMINARIO PLANIFICCIÓN EJECUCIÓN.pptSEMINARIO PLANIFICCIÓN EJECUCIÓN.ppt
SEMINARIO PLANIFICCIÓN EJECUCIÓN.ppt
jhenny7
 
Sección 10 políticas contables, estimaciones y errores
Sección 10 políticas contables, estimaciones y erroresSección 10 políticas contables, estimaciones y errores
Sección 10 políticas contables, estimaciones y erroresJhonalex14
 
NIC 2- Existencias
  NIC 2-  Existencias  NIC 2-  Existencias
NIC 2- Existencias
Fanny Lorenzo Quilla
 
Inventarios
InventariosInventarios
Sesión 7. Análisis de liquidez y análisis de solvencia.
Sesión 7. Análisis de liquidez y análisis de solvencia.Sesión 7. Análisis de liquidez y análisis de solvencia.
Sesión 7. Análisis de liquidez y análisis de solvencia.Carlos Martinez
 
Presentacion de contabilidad de servicios
Presentacion de contabilidad de serviciosPresentacion de contabilidad de servicios
Presentacion de contabilidad de serviciosCarmen Moscoso Cuellar
 
Iva.pptmec2013
Iva.pptmec2013Iva.pptmec2013
Iva.pptmec2013
Jorge Ceron
 
Costos e Inventarios según la norma NIC 2
Costos e Inventarios según la norma NIC 2Costos e Inventarios según la norma NIC 2
Costos e Inventarios según la norma NIC 2Jairo Acosta Solano
 
Proceso contable básico
Proceso contable básicoProceso contable básico
Proceso contable básico
alexaj
 

La actualidad más candente (20)

Importancia de papeles de trabajo de auditoria
Importancia de papeles de trabajo de auditoriaImportancia de papeles de trabajo de auditoria
Importancia de papeles de trabajo de auditoria
 
Deterioro de inventarios
Deterioro de inventariosDeterioro de inventarios
Deterioro de inventarios
 
Impuesto de bienes inmuebles en PANAMÁ
Impuesto de bienes inmuebles en PANAMÁImpuesto de bienes inmuebles en PANAMÁ
Impuesto de bienes inmuebles en PANAMÁ
 
Muestreo en una auditoría
Muestreo en una auditoríaMuestreo en una auditoría
Muestreo en una auditoría
 
Seccion 30
Seccion 30Seccion 30
Seccion 30
 
Analisis de-los-estados-financieros
Analisis de-los-estados-financierosAnalisis de-los-estados-financieros
Analisis de-los-estados-financieros
 
Contabilidad de costos[1]
Contabilidad de costos[1]Contabilidad de costos[1]
Contabilidad de costos[1]
 
Papeles de trabajo 2
Papeles de trabajo 2Papeles de trabajo 2
Papeles de trabajo 2
 
Informe de auditoria
Informe de auditoriaInforme de auditoria
Informe de auditoria
 
Como interpretar un informe de auditoría
Como interpretar un informe de auditoríaComo interpretar un informe de auditoría
Como interpretar un informe de auditoría
 
Contribuyentes formales y libros de iva
Contribuyentes formales y libros de ivaContribuyentes formales y libros de iva
Contribuyentes formales y libros de iva
 
SEMINARIO PLANIFICCIÓN EJECUCIÓN.ppt
SEMINARIO PLANIFICCIÓN EJECUCIÓN.pptSEMINARIO PLANIFICCIÓN EJECUCIÓN.ppt
SEMINARIO PLANIFICCIÓN EJECUCIÓN.ppt
 
Sección 10 políticas contables, estimaciones y errores
Sección 10 políticas contables, estimaciones y erroresSección 10 políticas contables, estimaciones y errores
Sección 10 políticas contables, estimaciones y errores
 
NIC 2- Existencias
  NIC 2-  Existencias  NIC 2-  Existencias
NIC 2- Existencias
 
Inventarios
InventariosInventarios
Inventarios
 
Sesión 7. Análisis de liquidez y análisis de solvencia.
Sesión 7. Análisis de liquidez y análisis de solvencia.Sesión 7. Análisis de liquidez y análisis de solvencia.
Sesión 7. Análisis de liquidez y análisis de solvencia.
 
Presentacion de contabilidad de servicios
Presentacion de contabilidad de serviciosPresentacion de contabilidad de servicios
Presentacion de contabilidad de servicios
 
Iva.pptmec2013
Iva.pptmec2013Iva.pptmec2013
Iva.pptmec2013
 
Costos e Inventarios según la norma NIC 2
Costos e Inventarios según la norma NIC 2Costos e Inventarios según la norma NIC 2
Costos e Inventarios según la norma NIC 2
 
Proceso contable básico
Proceso contable básicoProceso contable básico
Proceso contable básico
 

Destacado

Automatic API REST Droidcon
Automatic API REST DroidconAutomatic API REST Droidcon
Automatic API REST Droidcon
Alejandro Esquiva Rodriguez
 
Why vREST?
Why vREST?Why vREST?
Why vREST?
vrest_io
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
Paradigma Digital
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAPea2014G3
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
Miguel Ángel Sánchez Chordi
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJSBlake Newman
 
Arquitectura REST
Arquitectura RESTArquitectura REST
Arquitectura REST
Héctor Fuente Pérez
 
Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reese
buildacloud
 
Building Automated REST APIs with Python
Building Automated REST APIs with PythonBuilding Automated REST APIs with Python
Building Automated REST APIs with Python
Jeff Knupp
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with PythonLarry Cai
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
Israel Rey
 

Destacado (11)

Automatic API REST Droidcon
Automatic API REST DroidconAutomatic API REST Droidcon
Automatic API REST Droidcon
 
Why vREST?
Why vREST?Why vREST?
Why vREST?
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJS
 
Arquitectura REST
Arquitectura RESTArquitectura REST
Arquitectura REST
 
Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reese
 
Building Automated REST APIs with Python
Building Automated REST APIs with PythonBuilding Automated REST APIs with Python
Building Automated REST APIs with Python
 
Learn REST API with Python
Learn REST API with PythonLearn REST API with Python
Learn REST API with Python
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 

Similar a Taller Android Party: Automatic API REST + Notificaciones PUSH

Rest
RestRest
Taller definición de apis
Taller definición de apisTaller definición de apis
Taller definición de apis
CloudAppi
 
RAML
RAMLRAML
RAML
CloudAppi
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
CloudAppi
 
REST - deSymfony2012
REST - deSymfony2012REST - deSymfony2012
REST - deSymfony2012
Asier Marqués
 
Construyendo APIs Seguras y Escalables
Construyendo APIs Seguras y Escalables Construyendo APIs Seguras y Escalables
Construyendo APIs Seguras y Escalables
Amazon Web Services LATAM
 
RESTful Para todos by Diego Sapriza
RESTful Para todos by Diego SaprizaRESTful Para todos by Diego Sapriza
RESTful Para todos by Diego Sapriza
.NET Conf UY
 
Aplicaciones Web
Aplicaciones WebAplicaciones Web
Aplicaciones Web
Gorka Prieto
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
Rodolfo Finochietti
 
Creacion Apirest Back{4}app
Creacion Apirest Back{4}appCreacion Apirest Back{4}app
Creacion Apirest Back{4}app
blackmatt
 
Arquitectura de una Apis Rest en C.pptx
Arquitectura de una Apis  Rest en C.pptxArquitectura de una Apis  Rest en C.pptx
Arquitectura de una Apis Rest en C.pptx
RonaldoJos15
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
Alex Puig
 
Introducció a les Aplicació Web
Introducció a les Aplicació WebIntroducció a les Aplicació Web
Introducció a les Aplicació Web
CarlesMG57
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
Pedro J. Molina
 
SEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptxSEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptx
Francisco Javier Toscano Lopez
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbao
Asier Marqués
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Antonio Torres
 
Desarrollo de Aplicaciones para Twitter - CWZGZ
Desarrollo de Aplicaciones para Twitter - CWZGZDesarrollo de Aplicaciones para Twitter - CWZGZ
Desarrollo de Aplicaciones para Twitter - CWZGZequipo24
 
Api rest ful
Api rest fulApi rest ful
Api rest ful
Germán Küber
 
Http al descubierto
Http al descubiertoHttp al descubierto
Http al descubierto
Alan Resendiz
 

Similar a Taller Android Party: Automatic API REST + Notificaciones PUSH (20)

Rest
RestRest
Rest
 
Taller definición de apis
Taller definición de apisTaller definición de apis
Taller definición de apis
 
RAML
RAMLRAML
RAML
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
 
REST - deSymfony2012
REST - deSymfony2012REST - deSymfony2012
REST - deSymfony2012
 
Construyendo APIs Seguras y Escalables
Construyendo APIs Seguras y Escalables Construyendo APIs Seguras y Escalables
Construyendo APIs Seguras y Escalables
 
RESTful Para todos by Diego Sapriza
RESTful Para todos by Diego SaprizaRESTful Para todos by Diego Sapriza
RESTful Para todos by Diego Sapriza
 
Aplicaciones Web
Aplicaciones WebAplicaciones Web
Aplicaciones Web
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
Creacion Apirest Back{4}app
Creacion Apirest Back{4}appCreacion Apirest Back{4}app
Creacion Apirest Back{4}app
 
Arquitectura de una Apis Rest en C.pptx
Arquitectura de una Apis  Rest en C.pptxArquitectura de una Apis  Rest en C.pptx
Arquitectura de una Apis Rest en C.pptx
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
Introducció a les Aplicació Web
Introducció a les Aplicació WebIntroducció a les Aplicació Web
Introducció a les Aplicació Web
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
SEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptxSEVILLA Meetups29112022_sh.pptx
SEVILLA Meetups29112022_sh.pptx
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbao
 
Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]Microsoft Asp. Net [Asp.Net - Parte 2]
Microsoft Asp. Net [Asp.Net - Parte 2]
 
Desarrollo de Aplicaciones para Twitter - CWZGZ
Desarrollo de Aplicaciones para Twitter - CWZGZDesarrollo de Aplicaciones para Twitter - CWZGZ
Desarrollo de Aplicaciones para Twitter - CWZGZ
 
Api rest ful
Api rest fulApi rest ful
Api rest ful
 
Http al descubierto
Http al descubiertoHttp al descubierto
Http al descubierto
 

Último

Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdf
joseabachesoto
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
GROVER MORENO
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
SantosCatalinoOrozco
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
ivan848686
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
JhonatanOQuionesChoq
 
Sesiones 3 y 4 Estructuras Ingenieria.pdf
Sesiones 3 y 4 Estructuras Ingenieria.pdfSesiones 3 y 4 Estructuras Ingenieria.pdf
Sesiones 3 y 4 Estructuras Ingenieria.pdf
DeyvisPalomino2
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
ycalful01
 
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDADPRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
mirellamilagrosvf
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
YoverOlivares
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
RobertRamos84
 
FISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdfFISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdf
JavierAlejosM
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
leonpool521
 
Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.
thatycameron2004
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
maitecuba2006
 
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).docEjercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
LuisEnriqueCarboneDe
 
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
HaroldKewinCanaza1
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
FacundoPortela1
 
libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
MiriamAquino27
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
FRANCISCOJUSTOSIERRA
 

Último (20)

Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdf
 
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdfHITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
HITO DE CONTROL N° 011-2024-OCI5344-SCC SAN PATRICIO.pdf
 
Bash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptxBash Script Programacion en la consola.pptx
Bash Script Programacion en la consola.pptx
 
01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas01-introduccion-a-la-perforacion.pdf de minas
01-introduccion-a-la-perforacion.pdf de minas
 
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
SESION 1 - SESION INTRODUCTORIA - INTRODUCCIÓN A LA PERFORACIÓN Y VOLADURA DE...
 
Sesiones 3 y 4 Estructuras Ingenieria.pdf
Sesiones 3 y 4 Estructuras Ingenieria.pdfSesiones 3 y 4 Estructuras Ingenieria.pdf
Sesiones 3 y 4 Estructuras Ingenieria.pdf
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica químicaCiclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
Ciclo de Otto. Máquinas térmicas para el estudio de la termodinámica química
 
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDADPRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
 
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptxSistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
Sistema de disposición sanitarias – UBS composteras 2 PARTE.pptx
 
FISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdfFISICA_Hidrostatica_uyhHidrodinamica.pdf
FISICA_Hidrostatica_uyhHidrodinamica.pdf
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
 
Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.Flujograma de gestión de pedidos de usuarios.
Flujograma de gestión de pedidos de usuarios.
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
 
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).docEjercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
Ejercicios-de-Divisibilidad-para-Primero-de-Primaria (3).doc
 
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
UNIVERSIDAD NACIONAL ALTIPLANO PUNO - FACULTAD DE INGENIERIA MECANICA ELECTRICA.
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
 
libro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdflibro conabilidad financiera, 5ta edicion.pdf
libro conabilidad financiera, 5ta edicion.pdf
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
 

Taller Android Party: Automatic API REST + Notificaciones PUSH

  • 1. Automatic API REST + Notificaciones PUSH Alejandro Esquiva Rodríguez (@alex_esquiva) Automatic API REST: Simplifica tus consultas by Geeky Theory is licensed under a Creative Commons Reconocimiento- NoComercial-CompartirIgual 4.0 Internacional License.
  • 3. Herramientas que vamos a usar • http://androidparty.geekytheory.com/material.rar • http://www.easyphp.org/save-easyphp-devservervc9-latest.php
  • 5. ¿Qué es una API REST? API • Una API representa una interfaz de comunicación entre componentes de software.
  • 6. ¿Qué es una API REST? REST • Transferencia de estado Representacional. • Está orientado a transferencia de recursos. • Arquitectura cliente/servidor sin estado: ni el cliente ni el servidor necesitan recordar ningún estado de las comunicaciones entre mensajes. • Hace uso del protocolo HTTP. • Cada recurso es únicamente accesible a través de su URI. • Los datos son generalmente ofrecidos en formato JSON o XML . • Control de errores.
  • 7. ¿Qué es una API REST? Cada recurso es accesible a través de una única URI. URIs
  • 8. ¿Qué es una API REST? El cliente hace peticiones al servidor usando el protocolo HTTP. El servidor le responde a través del mismo protocolo. Arquitectura Cliente - Servidor
  • 9. ¿Qué es una API REST? • GET Pedir información a un recurso. • POST Create: Orden para insertar información. Update: Modificar información. • PUT Create: Orden para insertar información. Update: Modificar información. • DELETE Eliminar información del servidor. Operadores API REST
  • 10. ¿Qué es una API REST? JSON Formatos de salida XML
  • 11. ¿Qué es una API REST? Ejemplos de APIs
  • 12. Android y APIs Necesidad • Base de datos externa. • Interacción de datos entre servidor y cliente. • Aplicaciones multiplataforma
  • 13. Automatic API REST ¿Qué es? • Una herramienta Open Source. • Crea una completa API de tu base de datos MySQL o MariaDB. • Proporciona una red automática de enlaces que proporcionan la información en JSON o XML. • Intercambia información entre distintos lenguajes de programación. • Panel de control para gestionar la privacidad de las tablas o campos de la base de datos. http://AutomaticApiRest.info
  • 14. Automatic API REST Especificaciones • Creación de enlaces únicos para cada recurso (URIs) • Gestión de privacidad de las tablas. • No altera la estructura de la base de datos. • Obtener datos (GET) en formato JSON y XML. • Insertar datos (POST) a través de enlaces únicos. • Modificar Datos (POST) a través de enlaces únicos. • Gestión de errores.
  • 15. Automatic API REST Modo de empleo • Aplicación de servidor 1. Instalar Automatic Api Rest en un servidor con soporte para PHP y MySQL. 2. Configurar el archivo config.php con los credenciales del servidor y apuntar a nuestra base de datos. 3. Entrar en el panel de control con los credenciales que hemos indicado en el archivo config.php 4. Indicar que tablas y campos son privados, deshabilitando la opción de obtener/añadir/modificar/eliminar datos.
  • 16. Automatic API REST Modo de empleo (GET) • Aplicación de cliente (java, Python, c++,…) 1. Seleccionar los enlaces que queremos consultar desde el panel de control de Automatic API Rest. 2. Obtener el json/xml de la petición. 3. Parsear datos obtenidos.
  • 17. Automatic API REST Modo de empleo (POST) • Aplicación de cliente (java, Python, c++,…) 1. Seleccionar el enlace donde queremos enviar la información. 2. Preparamos un json o xml (también se puede insertar desde parámetros POST) con los datos a insertar o modificar. 3. Enviar la petición 4. Obtenemos la respuesta con los resultados de la consulta
  • 18. Cuando Usar Automatic API REST • ¿Tienes una aplicación que necesite obtener datos de una base de datos externa? • ¿Tienes una aplicación que sea multiplataforma? • ¿Quieres ahorrar tiempo en el desarrollo de una API?
  • 19. Ejemplo de uso: Base de datos Descarga de la base de datos de prueba. http://dev.mysql.com/doc/index-other.html • Base de datos: World • Número de tablas: 3 • city: 4079 filas • country: 239 filas • countrylanguage: 991 filas city countrylanguage country
  • 20. Ejemplo de uso: Instalación 1. Descargamos Automatic API REST. 2. Extraer el zip y subir todo el directorio a la raíz principal de vuestro servidor. 3. Abrir el archivo config.php y rellenar todos los campos con los credenciales de la base de datos. 4. Visitar http://tudominio.com/AutomaticaApiRest
  • 21. Ejemplo de uso: Config.php • SERVER: localhost • USER: Usuario de la base de datos • PASS: Contraseña del usuario de la base de datos • DB: Base de datos a la que queremos apuntar • USERADMIN: cuenta de administrador de AAR • PASSADMIN: contraseña de administrador
  • 22. Ejemplo de uso: Log In http://tudominio.com/AutomaticaApiRest
  • 23. Ejemplo de uso: Panel de Control
  • 24. Ejemplo de uso: Navegación Home: Enlace al inicio del panel de control. Documentation: Documentación del proyecto. [En Construcción] Black List: Gestión de las tablas privadas. GitHub: Enlace al proyecto en GitHub Close: Cierre de la sesión.
  • 25. Ejemplo de uso: Gestión de tablas Table Name: Nombre de la tabla de la base de datos. API Link: Dirección única del recurso donde vamos a consultar todos los datos en formato JSON de la tabla. Items: Número de Items que tiene la tabla. Show Table: Mostrar una tabla con los datos de la tabla seleccionada. Privacity: Esta casilla muestra si la tabla es pública o privada, en caso de que sea privada no se podrá ni consultar ni gestionar la tabla.
  • 26. Ejemplo de uso: Gestión de campos Column: Nombre del campo de la tabla seleccionada. API Link: Enlace que genera un JSON con toda la información del campo encapsulado. Show Table: Ver una tabla con los datos del campo seleccionado. Select: Consulta personalizada (Ver siguiente punto). Privacity: Privacidad del campo.
  • 27. Ejemplo de uso: Consulta Personalizada Observamos que podemos personalizar la consulta de datos, si por ejemplo sólo nos interesa el ID y el nombre de los últimos 5 registros de la tabla city ordenados por el campo Name generamos un enlace que exactamente nos ofrezca eso.
  • 28. Ejemplo de uso: Black List La Black List muestra todos las tablas y columnas que no permitimos ni obtener ni insertar datos. Desde esta misma tabla podemos eliminar los registros de la Black List.
  • 29. Ejemplo de uso: Salida JSON {"data":[{"0":"u00b4s-Hertogenbosch","Name":"u00b4s- Hertogenbosch","1":"Noord-Brabant","District":"Noord- Brabant","2":"129170","Population":"129170"},{"0":"u0160umen ","Name":"u0160umen","1":"Varna","District":"Varna","2":"9468 6","Population":"94686"},{"0":"u0160tu0161olkovo","Name":"u 0160tu0161olkovo","1":"Moskova","District":"Moskova","2":"104 900","Population":"104900"},{"0":"u0160ostka","Name":"u0160 ostka","1":"Sumy","District":"Sumy","2":"90000","Population":"90 000"},{"0":"u0160iauliai","Name":"u0160iauliai","1":"u0160iauli ai","District":"u0160iauliai","2":"146563","Population":"146563"}] ,"dbInfo":["Name","District","Population"]}
  • 30. Ejemplo de uso: Aplicación Cliente - Java Obtener información en JAVA • Creación de una clase para la obtención y gestión de datos. • Creación de métodos necesarios para parsear JSONs y obtener los datos a través de un enlace dado.
  • 31. Ejemplo de uso: Aplicación Cliente - Java getJSON • Obtiene un JSON a través de un enlace dado
  • 32. Ejemplo de uso: Aplicación Cliente - Java getDataStringArray • Hace uso de la librería json-simple- 1.1.1.jar • Devuelve un array multidimensional de Strings con la información del JSON
  • 33. Ejemplo de uso: Aplicación Cliente - Java setData
  • 34. Ejemplo de uso: Aplicación Cliente - Java Ejemplo 1: Obtención de un dato
  • 35. Ejemplo de uso: Aplicación Cliente - Java Ejemplo 2: Inserción de datos
  • 36. Ejemplo de uso: Aplicación Cliente - Java Ejemplo 3: Código de errores [Invalid Parameters]
  • 37. Ejemplo de uso: Aplicación Cliente - Java Ejemplo 4: Código de errores [Unauthorized] Campo privada: CountryCode
  • 38. Automatic API REST (alpha/beta) Actualmente Automatic API REST es un projecto alpha, falta implementar mejoras y crear una documentación para cada tipo de lenguaje.
  • 39. Líneas Futuras de AAR • Documentación de cada plataforma • Creación de librerías para cada plataforma que facilite el uso de AAR • Implementación de seguridad con OAUTH 2.0 • Dar soporte a consultas complejas, WHERE, INNER, etc. • Escoger permisos de cada tabla/campo, elegir permisos de cada campo. • Gestión óptima de URIs
  • 40. Proyecto Open Source • Automatic API REST es un proyecto Open Source, todo el mundo es bienvenido a colaborar. • Para colaborar, enviar directamente vuestros pull request o enviar un correo a alejandro@geekytheory.com
  • 42. Ecosistema 1. El dispositivo Android envía el ID de aplicación de GCM. 2. El servicio GCM devuelve un Id de registro único por aplicación y dispositivo. 3. Enviamos este id a nuestra aplicación de servidor. 4. Almacenamos el id en la base de datos externa. 5. Si queremos enviar una notificación, obtenemos el id de la base de datos y enviamos el mensaje a GCM. 6. GCM enviará el mensaje a nuestra aplicación.
  • 44. Pasos a seguir 1. Registrarse en Google Cloud Messaging (GCM) desde Google API Console y obtener el Sender ID y la API key. 2. Crear una base de datos donde almacenaremos los ids de los usuarios. 3. Instala Automatic Api Rest (Opcional) y apuntar a la base de datos creada. 4. Crear una aplicación de servidor donde este a la escucha de ordenes para enviar notificaciones PUSH. 5. Crear una aplicación de cliente (Android) para obtener los Ids y almacenarlas en la base de datos y poder enviar notificaciones.
  • 45. Obtener Sender ID y API Key 1. https://code.google.com/apis/console
  • 46. Obtener Sender ID y API Key 2. Obtener Sender ID:
  • 47. Obtener Sender ID y API Key 3. Activar API
  • 48. Obtener Sender ID y API Key 4. Activar Google Cloud Messaging for Android
  • 49. Obtener Sender ID y API Key 5. Ir a Credenciales
  • 50. Obtener Sender ID y API Key 6. Generar API Key
  • 51. Creación de una base de datos externa
  • 53. Crear una aplicación de servidor para enviar Notificaciones sendNotification.php
  • 64. Referencias • Tutorial sobre Notificaciones PUSH • http://androidexample.com/Android_Push_Notifications_using_Google_Cloud_Messaging_GCM/index.php?view= article_discription&aid=119&aaid=139 • Serie de tutoriales sobre JSON • http://geekytheory.com/category/geeky-theory-2/tutoriales-2/programacion-web/json/ • Tutorial sobre Automatic Api Rest • http://geekytheory.com/automatic-api-rest/ • Serie de tutoriales sobre JAVA – PHP –MYSQL • http://geekytheory.com/category/java-php-mysql/ • Tutoriales Sobre PHP & MySQL • http://geekytheory.com/category/geeky-theory-2/tutoriales-2/programacion-web/php-mysql/