YQL ( Yahoo! Query Language) es un lenguaje de sintaxis similar a SQL que Yahoo! utiliza para filtrar y unificar datos de Web Services de por toda internet. Dispone de una potente API que nos permite realizar consultas bastante complejas y obtener los datos en XML o JSON.
Consola
Yahoo! nos pone a nuestra disposición una consola muy completa que nos permite realizar las pruebas necesarias antes de usarlo en proyectos en real.
Usándola en PHP
Para usarla desde nuestras aplicaciones necesitaremos obtener una API Key (que será usada en alguna petición) y enviaremos las peticiones mediante cURL a la URL que Yahoo! pone a nuestra disposición:
// Definimos la consulta
$query = 'select * from flickr.photos.interestingness(20)';
// Concatenamos con la consulta
$url = 'http://query.yahooapis.com/v1/public/yql?format=json&q=' . urlencode($query);
// Creamos la conexión cURL
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, false);
// Lanzamos la petición
$rawdata = curl_exec($c);
curl_close($c);
// Convertimos el JSON en un objeto
$data = json_decode($rawdata);
// Mostramos la información
echo '<pre>';
print_r($data);
echo '</pre>'
Indicando el formato en el que queremos recibir los datos para mostrar en nuestra página podremos trabajar con él y adaptarlo a nuestro diseño fácilmente:
<?php
$results = $data->query->results->results;
for ($i = 0; i$i < count($results); $i++) :
$item = $results[$i]->item->item;
$link = $results[$i]->item->resource;
?>
<li>
<a href="<?=$link?>"><?=$item?></a>
</li>
<?php endfor; ?>
Realmente es sencillo y potente, además dispone de más de 130 tablas de las que obtener información. Un interesante concepto que nos ayuda a unificar toda la información disponible por internet.
6 comentarios, 2 referencias
+
#