Contenido

YQL: Un lenguaje de programación para Internet

31 Ene

+ 8

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.

YQL_console
(Ver Imagen)

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.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.