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
1. Programación
de Yahoo
Pipes
David J.
Brenes
Programación de Yahoo Pipes Martínez
Desarrollador
en Grupo
Índigo
Elementos de
David J. Brenes Martínez Yahoo Pipes
Desarrollador en Grupo Índigo Tipos de
módulos
Fuentes de datos
Curso de Extensión Universitaria Entradas del Usuario
Operadores
Desarrollo de aplicaciones web mediante servicios web y APIs abiertas Constructores
Universidad de Oviedo Reutilización de
módulos
Yahoo! Pipes
2009/07/20 y PHP
Créditos y
Licencia
2. El Entorno
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
3. El Módulo
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
4. La conexión
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
5. Los parámetros
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
6. El depurador
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
7. El depurador
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
8. El depurador
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
9. El depurador
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
10. Los resultados
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
11. Sources
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Son las entradas de datos a Yahoo! Pipes. Índigo
Obtiene datos de fuentes estructuradas (RSS, JSON, Elementos de
Yahoo Pipes
iCal, CSV...).
Tipos de
Permite consultar Servicios Web de manera directa. módulos
Fuentes de datos
Permite obtener HTML. Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
12. Sources
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
13. Sources
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
14. Sources
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
15. Entradas de Usuario
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Datos a proporcionar por el usuario. Desarrollador
en Grupo
Mediante un formulario (Acceso Web) Índigo
Mediante un parámetro de módulo (Acceso desde
Pipes) Elementos de
Yahoo Pipes
Mediante URL (Acceso por programa) Tipos de
módulos
Diversos tipos Fuentes de datos
Entradas del Usuario
Valores por defecto y de depuración. Operadores
Constructores
Siempre son parámetros para otros módulos Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
16. Entradas de Usuario
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
17. Operadores
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Realizan la mayor parte de transformaciones sobre los Índigo
datos. Elementos de
Yahoo Pipes
Son el núcleo fuerte de Yahoo! Pipes.
Tipos de
Permite definir nuevas transformaciones via Servicios módulos
Fuentes de datos
Web REST. Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
18. Count
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
Cuenta los elementos de un pipe.
19. Create RSS
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
Permite crear un RSS a partir de un flujo que no lo es Créditos y
Licencia
20. Filter
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
Filtra elementos de acuerdo a características Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
21. Location Extractor
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
Obtiene coordenadas geográficas relacionadas con un Créditos y
elemento. Licencia
22. Regular Expression
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
Aplica expresiones regulares a atributos de un elemento del Reutilización de
módulos
pipe. Yahoo! Pipes
y PHP
Créditos y
Licencia
23. Rename
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
Renombra atributos de un elemento del pipe. Créditos y
Licencia
24. Reverse
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
Ordena de forma inversa los elementos de un pipe. Licencia
25. Sort
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
Ordena los elementos de un pipe de acuerdo a criterios. Licencia
26. Subelements
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
Selecciona subelementos de los elementos del pipe y Licencia
elimina el resto.
27. Tail
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
Muestra los últimos elementos del pipe.
28. Truncate
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
Elimina los últimos elementos del pipe.
29. Union
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
Une varios pipes en uno. Yahoo! Pipes
y PHP
Créditos y
Licencia
30. Unique
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
Elimina elementos repetidos de acuerdo a ciertos criterios Licencia
de igualdad.
31. Web Service
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
Consulta un servicio web enviando el Pipe en formato Yahoo! Pipes
y PHP
JSON. Créditos y
Licencia
32. Web Service - Ventajas
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Permite ampliar Yahoo! Pipes. Índigo
Servicios web sencillos y mantenibles. Elementos de
Yahoo Pipes
Los datos son controlados por el programador en Tipos de
formato JSON. módulos
Fuentes de datos
Posibilidades de depuración. Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
33. Web Service - Problemas
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Índigo
Requiere programar un servicio web (REST).
Elementos de
Requiere infraestructura. Yahoo Pipes
Tipos de
Más dependencia de red. módulos
Fuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
34. Constructores
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Índigo
Permiten construir datos de distintos tipos.
Elementos de
Suelen conectarse a los parámetros de otros módulos. Yahoo Pipes
Tipos de
De especial importancia el Item Builder. módulos
Fuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
35. Item Builder
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
Permite construir un nodo. Operadores
Constructores
Reutilización de
Junto con el operador Union puede ayudarnos a crear módulos
nuestros propios torrentes de datos. Yahoo! Pipes
y PHP
Créditos y
Licencia
36. My Pipes
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
Nos ofrece la posibilidad de reutilizar módulos. Entradas del Usuario
Operadores
Ofrecen los datos de la ejecución del Pipe concreto. Constructores
Reutilización de
módulos
Las entradas del usuario son parámetros al uso.
Yahoo! Pipes
y PHP
Son similares a cualquier otro módulo.
Créditos y
Licencia
37. Pasos
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Índigo
Pasos similares a los de acceso a una capa de persistencia.
Elementos de
Descargar los datos. Yahoo Pipes
Tipos de
Parsear los resultados. módulos
Fuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
38. Realizando la conexión
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Índigo
Problema:
Elementos de
Características propias de la red. P. ej: Proxy Yahoo Pipes
Tipos de
Solución: cURL módulos
Fuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
39. Realizando la conexión
Programación
de Yahoo
Pipes
Conexión mediante cURL David J.
Brenes
Martínez
$conexion = curl_init(); Desarrollador
en Grupo
curl_setopt($conexion, CURLOPT_RETURNTRANSFER, Índigo
TRUE);
Elementos de
curl_setopt($conexion, CURLOPT_HEADER, 0); Yahoo Pipes
curl_setopt($conexion, CURLOPT_URL, Tipos de
módulos
’http://pipes.yahoo.com/brenes/callforpapers’); Fuentes de datos
Entradas del Usuario
curl_setopt($conexion, CURLOPT_PROXY, Operadores
Constructores
’http://proxy.uniovi.es:8888’); Reutilización de
módulos
$resultado = curl_exec($conexion); Yahoo! Pipes
curl_close($conexion); y PHP
Créditos y
Licencia
40. Formatos de datos
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Índigo
RSS
Elementos de
JSON Yahoo Pipes
Tipos de
PHP Serializado. módulos
Fuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
41. RSS
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
Una vez obtenido: Entradas del Usuario
Operadores
Constructores
Se puede parsear mediante extensiones XML Reutilización de
módulos
(simpleXML). Yahoo! Pipes
y PHP
Se puede transformar mediante XSLT.
Créditos y
Licencia
Cómodo para operaciones de transformación.
42. JSON
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
JavaScript Object Notation en Grupo
Índigo
Elementos de
Protocolo de Intercambio de datos ‘ligero’. Yahoo Pipes
Tipos de
Integrado en PHP 5.2. módulos
Fuentes de datos
Abundantes bibliotecas en varios lenguajes (C#, Java, Entradas del Usuario
Operadores
PHP, ASP, Python, Ruby. . . ) Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
43. JSON en PHP
Programación
de Yahoo
Pipes
David J.
Parseo de JSON en PHP Brenes
Martínez
$resultado = curl_exec($conexion); Desarrollador
en Grupo
... Índigo
$items = json_decode($resultado); Elementos de
Yahoo Pipes
Tipos de
Se crea la estructura de árbol representada por JSON módulos
mediante arrays. Fuentes de datos
Entradas del Usuario
Operadores
Funciones estándar de PHP 5.2 . Constructores
Reutilización de
módulos
Mediante casts a objetos tendremos objetos cargados,
Yahoo! Pipes
no arrays. y PHP
Créditos y
Licencia
44. PHP Serializado
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Serializacón nativa de PHP. Índigo
Más pesado que JSON y XML. Elementos de
Yahoo Pipes
Procesado optimizado en PHP (más rápido que JSON
Tipos de
o RSS). módulos
Fuentes de datos
Soporte desconocido para otros lenguajes. Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
45. PHP Serializado
Programación
de Yahoo
Pipes
David J.
Parseo de PHP Serializado en PHP Brenes
Martínez
$resultado = curl_exec($conexion); Desarrollador
en Grupo
... Índigo
$items = unserialize($resultado); Elementos de
Yahoo Pipes
Tipos de
Se crea la estructura de árbol represantada por la módulos
serialización. Fuentes de datos
Entradas del Usuario
Operadores
Función estándar de PHP. Constructores
Reutilización de
módulos
Mediante casts a objetos tendremos objetos cargados,
Yahoo! Pipes
no arrays. y PHP
Créditos y
Licencia
46. Y de aquí...
Programación
de Yahoo
Los datos han llegado a nuestra aplicación. 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
Es hora de nuestra capa de negocio. Licencia
47. Créditos
Programación
de Yahoo
Pipes
David J.
Brenes
Martínez
Desarrollador
en Grupo
Índigo
La foto ‘Genius at work’ (transparencia 42) fue
publicada en flickr por el usuario ‘pjkproductions’ Elementos de
Yahoo Pipes
(http://www.flickr.com/photos/ Tipos de
módulos
pjkproductions/2867454149/) Fuentes de datos
Entradas del Usuario
Operadores
Constructores
Reutilización de
módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia
48. Licencia
Programación
de Yahoo
Pipes
David J.
Brenes
Estas transparencias se publican bajo licencia Creative Martínez
Desarrollador
Commons y se pueden redistribuir o modificar bajo las en Grupo
Índigo
siguientes condiciones:
Elementos de
Se dé reconocimiento al autor de estas transparencias. Yahoo Pipes
No se use con propósitos comerciales. Tipos de
módulos
Se distribuya con la misma licencia. Fuentes de datos
Entradas del Usuario
Operadores
Texto de la licencia: http: Constructores
Reutilización de
//creativecommons.org/licenses/by-nc-sa/3.0/ módulos
Yahoo! Pipes
y PHP
Créditos y
Licencia