Introdução ao YQL – Yahoo Query Language

Introdução ao YQL – Yahoo Query Language:
YQL - Yahoo Query Language

O YQL (Yahoo Query Language) é uma API do Yahoo criada para facilitar a vida dos desenvolvedores, onde ele reune milhares de serviços únicos. Essa API não é relativamente nova, já existe a um bom tempo, mas não vejo ninguém explorar seu potencial, por isso resolvi fazer esse post.


O YQL funciona de maneira similar a um banco de dados, onde os serviços são disponibilizados através de tabelas, onde podemos fazer consultas através de uma sintaxe semelhante a do SQL, sim, você poderá selecionar os dados a partir de uma simples select, ou combinando com subselects, e etc…



Pelo console, quando selecionamos uma tabela, já é mostrado um exemplo de como seria sua consulta, o que facilita para quem não tem conhecimentos sólidos sobre SQL. Por padrão, são exibidas as tabelas referentes aos serviços do Yahoo!, mas qualquer um pode adicionar novos serviços desde que o mesmo seja proprietário das informações ou as mesmas sejam explicitamente de domínio público.


Para ter acesso as tabelas públicas, basta fazer o seguinte, acesse o console, logo a direita você verá o título DATA TABLES, basta clicar em: Show Community Tables


Introdução ao YQL - Yahoo Query Language

Agora você tem acesso a todas as tabelas comunitárias. A partir daqui você poderia, por exemplo, consultar a tabela do W3C e executar a seguinte query no console.


select * from w3c.check where uri='www.yahoo.com'

Essa query é responsável por verificar e validar o HTML, tudo através do YQL, e o retorno disso tudo é um XML ou JSON, a partir daí eu posso fazer o que quiser com essas informações.


Em um outro exemplo que fiz aqui, efetuo a seguinte consulta no console:


select * from html where url='http://www.cssnolanche.com.br' and xpath='//div[@class="shadow"]//h2'

Essa query é responsável por acessar meu outro blog, ler todo o HTML, e com XPath pegar todo o conteúdo que está dentro da tag h2, que consequentemente está dentro de uma div com a class shadow. Vá até o console, escolha a opção XML ou JSON, clique em test e veja o resultado.


Após, eu posso pegar a REST QUERY gerada e fazer um parser com jQuery.


Em um outro exemplo também poderia pegar meu últimos Tweets, com a seguinte query:


select * from twitter.user.timeline where screen_name='pinceladasdaweb'

E depois fazer o parser do JSON gerado.


Em uma consulta mais complexa, poderia mesclar o feed dos meus 2 blogs e depois filtrar somente pelo título dos posts:


select channel.item.title,channel.item.link, channel.item.pubDate
from xml where url in(
'http://feeds.feedburner.com/pinceladasdaweb',
'http://feeds2.feedburner.com/CssNoLanche'
)
| unique(field="channel.item.link")
| sort(field="channel.item.pubDate", descending="true")

As possibilidades de uso do YQL são infinitas, mostrei aqui 3 exemplos básicos de uso, mas como você pode ver, o Dirceu mostra em seu blog como é possível fazer um Widget com os produtos do Submarino através do YQL e XPath. Ou então o Luis Cipriani que criou um Mash up para saber a localização das feiras livres aos domingos mais próximas de sua casa.




Introdução ao YQL – Yahoo Query Language

Já conhece o meu outro blog? O endereço é o: CSS no Lanche

Você ainda não está me seguindo no Twitter, o que está esperando para fazer isso?