sábado, 24 de diciembre de 2011

SELECT usando JavaScript en Google FT

Google Fusion Tables


Para los que busquen una base de datos simplificada y que esté siempre disponible, Google nos ofrece una solución muy interesante. Google Fusion Tables es una base de datos relacional en la nube.

Las ventajas que nos aporta es despreocuparnos de toda la infraestructura que conlleva dedicar un servidor a una base de datos, ya sea seguridad, configuraciones, averías, gastos de mantenimiento, ...

Si decidimos usar esta base de datos en nuestra aplicación Web usando JavaScript, debemos tener en cuenta que aún está en desarrollo y que aún le queda añadir algunas funcionalidades para hacer la vida más cómoda a los programadores. El ejemplo clave es no tener un método definido para hacer queries al servicio usando los metodos GET y POST.

Voy a comentar una manera fácil para solicitar datos a Google Fusion Tables, usando el método GET y con la ayuda de JSONP podremos evitar la limitación del Cross-domain en JavaScript de los navegadores modernos:

Codigo JavaScript
function obtenirDadesFT() {

var queryUrlHead = 'http://www.google.com/fusiontables/api/query?sql=';
    //Tenemos que indicar el nombre de la funcion donde enviaremos los datos obtenidos.
var queryUrlTail = '&jsonCallback=tractarDades';
 
   // escribimos la query normal:
var query = "SELECT name FROM 839090 limit 1";
    var queryurl = encodeURI(queryUrlHead + query + queryUrlTail);

          //Hacemos la peticion GET a Fusion Tables usando JSONP:
$.get(queryurl, dataHandler, "jsonp");
}
         //Los datos obtenidos se almacenan en la variable 'data', y tractarDades es la función que hemos indicado más arriba:
        // La variable 'data' es un objeto JSON, por lo tanto usaremos la mecánica propia del objeto para tratar su información, en este caso representamos las filas obtenidas de la Query:

function tractarDades(data) {

alert(data.table.rows);
}

Hay que tener en cuenta que la función $.get es de jQuery, por lo tanto en el HTML deberemos incluir la siguiente etiqueta:

<html>

<head>
                //El codigo JavaScript anterior lo tengo en un archivo en la misma carpeta, llamado funcions.js.
<script src="funcions.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

</head>
<body>
<div>

<input type="button" value="obtenirDadesFT" onclick="obtenirDadesFT()">

</div>
</body>
</html>

Espero que haya sido de utilidad. Solamente comentar que este método nos servirá para hacer Queries del tipo SELECT. Para hacer Queries del tipo INSERT deberemos esperar un tiempo más, porque en JavaScript no existe la posibilidad de hacerlo por el momento. Pronto tendremos alguna solución.

PD: Felices fiestas a tod@s!

No hay comentarios:

Publicar un comentario