programación de yahoo! pipes

48
Programación de Yahoo Pipes David J. Brenes Martínez Desarrollador en Grupo Índigo Elementos de Yahoo Pipes Tipos de módulos Fuentes de datos Entradas del Usuario Operadores Constructores Reutilización de módulos Yahoo! Pipes y PHP Créditos y Licencia Programación de Yahoo Pipes David J. Brenes Martínez Desarrollador en Grupo Índigo Curso de Extensión Universitaria Desarrollo de aplicaciones web mediante servicios web y APIs abiertas Universidad de Oviedo 2009/07/20

Upload: david-j-brenes

Post on 20-Jan-2015

1.454 views

Category:

Education


0 download

DESCRIPTION

Estas transparencias son una actualización de las disponibles en http://www.slideshare.net/brenes/programacin-de-yahoo-pipes-presentation En estas transparencias se muestran los principales elementos de la herramienta Yahoo! Pipes y su acceso desde lenguajes de programación como PHP. Usado en el Curso de Extensión Universitaria "Desarrollo de aplicaciones web mediante servicios web y APIs abiertas" de la Universidad de Oviedo: http://directo.uniovi.es/postgrado/cabecera_ep.asp?Curso=2008&IdPrograma=5187

TRANSCRIPT

Page 1: 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

Page 2: 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

El Entorno

Page 3: 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

El Módulo

Page 4: 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

La conexión

Page 5: 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

Los parámetros

Page 6: 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

El depurador

Page 7: 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

El depurador

Page 8: 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

El depurador

Page 9: 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

El depurador

Page 10: 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

Los resultados

Page 11: 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

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.

Page 12: 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

Sources

Page 13: 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

Sources

Page 14: 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

Sources

Page 15: 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

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

Page 16: 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

Entradas de Usuario

Page 17: 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

Operadores

Realizan la mayor parte de transformaciones sobre losdatos.Son el núcleo fuerte de Yahoo! Pipes.Permite definir nuevas transformaciones via ServiciosWeb REST.

Page 18: 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

Count

Cuenta los elementos de un pipe.

Page 19: 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

Create RSS

Permite crear un RSS a partir de un flujo que no lo es

Page 20: 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

Filter

Filtra elementos de acuerdo a características

Page 21: 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

Location Extractor

Obtiene coordenadas geográficas relacionadas con unelemento.

Page 22: 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

Regular Expression

Aplica expresiones regulares a atributos de un elemento delpipe.

Page 23: 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

Rename

Renombra atributos de un elemento del pipe.

Page 24: 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

Reverse

Ordena de forma inversa los elementos de un pipe.

Page 25: 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

Sort

Ordena los elementos de un pipe de acuerdo a criterios.

Page 26: 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

Subelements

Selecciona subelementos de los elementos del pipe yelimina el resto.

Page 27: 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

Tail

Muestra los últimos elementos del pipe.

Page 28: 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

Truncate

Elimina los últimos elementos del pipe.

Page 29: 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

Union

Une varios pipes en uno.

Page 30: 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

Unique

Elimina elementos repetidos de acuerdo a ciertos criteriosde igualdad.

Page 31: 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

Web Service

Consulta un servicio web enviando el Pipe en formatoJSON.

Page 32: 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

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.

Page 33: 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

Web Service - Problemas

Requiere programar un servicio web (REST).Requiere infraestructura.Más dependencia de red.

Page 34: 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

Constructores

Permiten construir datos de distintos tipos.Suelen conectarse a los parámetros de otros módulos.De especial importancia el Item Builder.

Page 35: 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

Item Builder

Permite construir un nodo.Junto con el operador Union puede ayudarnos a crearnuestros propios torrentes de datos.

Page 36: 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

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.

Page 37: 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

Pasos

Pasos similares a los de acceso a una capa de persistencia.

Descargar los datos.Parsear los resultados.

Page 38: 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

Realizando la conexión

Problema:

Características propias de la red. P. ej: Proxy

Solución: cURL

Page 39: 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

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);

Page 40: 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

Formatos de datos

RSSJSONPHP Serializado.

Page 41: 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

RSS

Una vez obtenido:

Se puede parsear mediante extensiones XML(simpleXML).Se puede transformar mediante XSLT.

Cómodo para operaciones de transformación.

Page 42: 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

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. . . )

Page 43: 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

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.

Page 44: 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

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.

Page 45: 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

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.

Page 46: 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

Y de aquí...

Los datos han llegado a nuestra aplicación.

Es hora de nuestra capa de negocio.

Page 47: 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

Créditos

La foto ‘Genius at work’ (transparencia 42) fuepublicada en flickr por el usuario ‘pjkproductions’(http://www.flickr.com/photos/pjkproductions/2867454149/)

Page 48: 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

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/