Stacktrace

The Yahoo! Query Language (YQL)  är ett kraftfullt SQL-liknande språk som ger möjligheten att tillgå och filtrera data från olika webservices som t ex Twitter och Flickr  för egen javascript-driven rendering.

Fördelarna med att använda YQL är att man reducerar det tidsödande arbetet med att hitta rätt URL, dokumentation och sätta sig in unika API’er för varje enskild webservice man vill använda. Vidare behöver man inte någon proxy för att hantera ”same domain policy” då man använder YQL.

Använder du redan YUI blir det väldigt enkelt då du kan använda ”YUI Get Utility”  och göra en request till ”YQL” som returnerar snygg valid JSON eller XML, förutom källan i requesten kan du villkora på flera sätt.

Exempel, hämta alla tweets från LHendahl


select * from twitter.search where q='LHendahl';


Exempel, hämta de fem senaste utrikesnyheterna från SVT


select * from feed where url='http://svt.se/rss/nyheter/utrikes/?output=rss' limit 5</code>


Via YQL’s webbaserade konsol kan man direkt laborera och testa olika frågor mot olika webservices.



Här är en exempelsida som renderar de 5 senaste utrikesnyheterna från SVT:

yql_js_widget.js filen finns att hämta från https://github.com/jcleblanc/yql-utilities/tree/master/js-yql-display/


<html>

<head>

    <title>YQL Example</title>

    <!-- inkludera YQL widget -->

    <script type="text/javascript" src="yql_js_widget.js"></script>

</head>

<body>

    <h1>SVT News</h1>

    <!-- Ange container för resultat -->

    <ul id="widgetContainer"></ul>

    <script type="text/javascript">

        var config = {'debug' : true, 'diagnostics' : true};

        var format = '<li>{title}</li>';

        <!-- Query från YQL console -->

        var yqlQuery = 'select * from feed where url="http://svt.se/rss/nyheter/utrikes/?output=rss" limit 5';

        var insertEl = 'widgetContainer';

        yqlWidget.push(yqlQuery, config, format, insertEl);

        yqlWidget.render();

    </script>

</body>

</html>

Begränsningen för det kostnadsfria användandet av YQL är ”1,000 calls per hour” vilket bör vara tillräckligt för de flesta små och medelstora sajter.

//Lars Hendahl Frontend Developer Cygni

Kommentarer

Skriv kommentar