Programación de Yahoo! Pipes
-
Upload
david-j-brenes -
Category
Education
-
view
1.454 -
download
0
description
Transcript of Programación de Yahoo! Pipes
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Programación de Yahoo Pipes
David J. Brenes MartínezDesarrollador en Grupo Índigo
Curso de Extensión UniversitariaDesarrollo de aplicaciones web mediante servicios web y APIs abiertas
Universidad de Oviedo
2009/07/20
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
El Entorno
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
El Módulo
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
La conexión
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Los parámetros
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
El depurador
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
El depurador
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
El depurador
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
El depurador
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Los resultados
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Sources
Son las entradas de datos a Yahoo! Pipes.Obtiene datos de fuentes estructuradas (RSS, JSON,iCal, CSV...).Permite consultar Servicios Web de manera directa.Permite obtener HTML.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Sources
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Sources
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Sources
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Entradas de Usuario
Datos a proporcionar por el usuario.Mediante un formulario (Acceso Web)Mediante un parámetro de módulo (Acceso desdePipes)Mediante URL (Acceso por programa)
Diversos tiposValores por defecto y de depuración.Siempre son parámetros para otros módulos
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Entradas de Usuario
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Operadores
Realizan la mayor parte de transformaciones sobre losdatos.Son el núcleo fuerte de Yahoo! Pipes.Permite definir nuevas transformaciones via ServiciosWeb REST.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Count
Cuenta los elementos de un pipe.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Create RSS
Permite crear un RSS a partir de un flujo que no lo es
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Filter
Filtra elementos de acuerdo a características
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Location Extractor
Obtiene coordenadas geográficas relacionadas con unelemento.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Regular Expression
Aplica expresiones regulares a atributos de un elemento delpipe.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Rename
Renombra atributos de un elemento del pipe.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Reverse
Ordena de forma inversa los elementos de un pipe.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Sort
Ordena los elementos de un pipe de acuerdo a criterios.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Subelements
Selecciona subelementos de los elementos del pipe yelimina el resto.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Tail
Muestra los últimos elementos del pipe.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Truncate
Elimina los últimos elementos del pipe.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Union
Une varios pipes en uno.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Unique
Elimina elementos repetidos de acuerdo a ciertos criteriosde igualdad.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Web Service
Consulta un servicio web enviando el Pipe en formatoJSON.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Web Service - Ventajas
Permite ampliar Yahoo! Pipes.Servicios web sencillos y mantenibles.Los datos son controlados por el programador enformato JSON.Posibilidades de depuración.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Web Service - Problemas
Requiere programar un servicio web (REST).Requiere infraestructura.Más dependencia de red.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Constructores
Permiten construir datos de distintos tipos.Suelen conectarse a los parámetros de otros módulos.De especial importancia el Item Builder.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Item Builder
Permite construir un nodo.Junto con el operador Union puede ayudarnos a crearnuestros propios torrentes de datos.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
My Pipes
Nos ofrece la posibilidad de reutilizar módulos.Ofrecen los datos de la ejecución del Pipe concreto.Las entradas del usuario son parámetros al uso.Son similares a cualquier otro módulo.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Pasos
Pasos similares a los de acceso a una capa de persistencia.
Descargar los datos.Parsear los resultados.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Realizando la conexión
Problema:
Características propias de la red. P. ej: Proxy
Solución: cURL
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Realizando la conexión
Conexión mediante cURL$conexion = curl_init();curl_setopt($conexion, CURLOPT_RETURNTRANSFER,TRUE);curl_setopt($conexion, CURLOPT_HEADER, 0);curl_setopt($conexion, CURLOPT_URL,’http://pipes.yahoo.com/brenes/callforpapers’);curl_setopt($conexion, CURLOPT_PROXY,’http://proxy.uniovi.es:8888’);$resultado = curl_exec($conexion);curl_close($conexion);
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Formatos de datos
RSSJSONPHP Serializado.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
RSS
Una vez obtenido:
Se puede parsear mediante extensiones XML(simpleXML).Se puede transformar mediante XSLT.
Cómodo para operaciones de transformación.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
JSON
JavaScript Object Notation
Protocolo de Intercambio de datos ‘ligero’.Integrado en PHP 5.2.Abundantes bibliotecas en varios lenguajes (C#, Java,PHP, ASP, Python, Ruby. . . )
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
JSON en PHP
Parseo de JSON en PHP$resultado = curl_exec($conexion);...$items = json_decode($resultado);
Se crea la estructura de árbol representada por JSONmediante arrays.Funciones estándar de PHP 5.2 .Mediante casts a objetos tendremos objetos cargados,no arrays.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
PHP Serializado
Serializacón nativa de PHP.Más pesado que JSON y XML.Procesado optimizado en PHP (más rápido que JSONo RSS).Soporte desconocido para otros lenguajes.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
PHP Serializado
Parseo de PHP Serializado en PHP$resultado = curl_exec($conexion);...$items = unserialize($resultado);
Se crea la estructura de árbol represantada por laserialización.Función estándar de PHP.Mediante casts a objetos tendremos objetos cargados,no arrays.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Y de aquí...
Los datos han llegado a nuestra aplicación.
Es hora de nuestra capa de negocio.
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Créditos
La foto ‘Genius at work’ (transparencia 42) fuepublicada en flickr por el usuario ‘pjkproductions’(http://www.flickr.com/photos/pjkproductions/2867454149/)
Programaciónde Yahoo
Pipes
David J.Brenes
MartínezDesarrollador
en GrupoÍndigo
Elementos deYahoo Pipes
Tipos demódulosFuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización demódulos
Yahoo! Pipesy PHP
Créditos yLicencia
Licencia
Estas transparencias se publican bajo licencia CreativeCommons y se pueden redistribuir o modificar bajo lassiguientes condiciones:
Se dé reconocimiento al autor de estas transparencias.No se use con propósitos comerciales.Se distribuya con la misma licencia.
Texto de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/