YQL – Yahoo Query Language

27/5/2009 | Tags:, , , , , | Escrito por: Dirceu Pauka Jr.

YQL é uma linguagem que permite buscas nas bases de dados do Yahoo ou em documentos especificados pelo desenvolvedor.

Uma boa maneira de entender o uso dessa linguagem é ver um pouco de código.

JS-Placemaker – geolocate texts in JavaScript é uma demonstração de como utilizar a YQL para buscar informações em uma API do Yahoo chamada Placemaker.
Dê uma olhada no código.

O exemplo usou o Placemaker, porém as outras APIs do Yahoo também podem ser buscadas.

Vamos a outro exemplo, dessa vez utilizando dados de outra API.

API do Twitter pelo Yahoo! YQL

Para quem nunca usou a API do Twitter existe um guia sobre a API.

Twitts de Usuário

Para ver alguns twitts de um certo usuário existe o método statuses/user_timeline. A entrada para ele é o ID do usuário.

Como especificado, uma requisição HTTP para esse método se parece com:
http://twitter.com/statuses/user_timeline.xml?user_id=12345

No YQL é tão simples quanto:

select * from twitter.user.timeline where id=12345

Faça o teste YQL Console

twitter

Esse exemplo utilizou a tabela do Twitter que faz parte do projeto DataTables. Projeto que reúne várias tabelas criadas por outros desenvolvedores.

Então é possivel criar novas tabelas!?

É sim! É possivel até mandar o Yahoo fazer screen scraping e retornar o resultado em JSON!

Mais um exemplo!

Digamos que eu quero fazer um widget para retornar alguns produtos do Submarino.

Cumprindo seu papel de maior e-commerce brasileiro o Submarino não dá a minima para os desenvolvedores e não possui até hoje uma API. Vamos “hackear” uma ;D

A busca pelo site é feito pelo seguinte HTTP GET: http://www.submarino.com.br/busca?q=ipod
Usaremos essa URL para buscar dados no Submarino utilizando a YQL.

A primeira parte para fazer o YQL ler documentos é simples:

select * from html where url=”http://www.submarino.com.br/busca?q=ipod”

A segunda é um pouco complicada. Para entender é necessário o minimo de conhecimento sobre XPath.

Para extrair o XPath da parte desejada do conteúdo usei o Firebug, porém é possivel usar o XPather também.

No Firebug use o “Inspect” para encontrar o elemento desejado:
Firebug

Copie o XPath:
xpath

Com o XPath do elemento HTML “pai” do produto temos a chamada YQL completa.

select * from html where url=”http://www.submarino.com.br/busca?q=ipod” and xpath=’/html/body/div/div[2]/div/div/div/div/div/div/div[2]/div/div/div/ul/li/div/a[3]‘

Abra o Console do YQL e teste. Legal! Temos uma busca de produtos no Submarino retornando XML ou JSON e aprendemos a usar o YQL com APIs do Yahoo, com APIs do DataTables e com qualquer documento da Web ;D

Como fazer um widget de ofertas do Submarino com YQL

Outros artigos relacionados ao Yahoo Open Strategy:

Yahoo! Web Services – apresentação das APIs
SearchMonkey Monkey
Yahoo! SearchMonkey



Yahoo! Web Services – apresentação das APIs

23/5/2009 | Tags:, , , , , , , , , | Escrito por: Dirceu Pauka Jr.

No #brhackday08 o foco dos desenvolvedores do Y! já parecia ser o de abrir a sua API.

Parte do Yahoo Open Strategy, SearchMonkey e BOSS foram os destaques das apresentações, mas uma serie de outros serviços da empresa foram apresentados para os desenvolvedores.

API do Yahoo!

O termo é realmente vago para quem nunca olhou a lista de serviços (web services) que a empresa oferece.

Pipes e SearchMonkey são possivelmente os mais conhecidos. Mas outros produtos do Y! para desenvolvedores são interessantes.

Pipes

O serviço permite a criação de mashups entre outras fontes de dados. O fluxo de dados extraídos das paginas pode ser construído usando uma interface visual bem legalzinha.

yahoo pipes screenshot

SearchMonkey

SearchMonkey é a ferramenta que permite modificar o visual da busca do Yahoo!
As informações que aparecerão nos resultados da buscas podem ser extraídas das paginas usando XPath.

Exemplo de resultado da busca com SearchMonkey:

Search Monkey funcionando

BOSS

Busca aberta. API que retorna os resultados da busca do Yahoo! em JSON ou XML.
É possivel facilmente “re-rankear” os resultados antes de mostrar para o usuário adicionando novas regras.

Music

Essa API pouco conhecida abre possibilidades interessantes para criação de serviços em cima.
Ela dá acesso a informações sobre artistas, álbuns, músicas e vídeos e permite buscas com diversos parâmetros.

Weather

API usada pela Apple em sua aplicação “Weather” do iPhone OS.
Além é claro de poder ser usada em gadgets como iPods e Wii, mashups (principalmente com geodata) podem ser criados com essa ferramenta disponibilizada pelo Y!

Todas essas “fontes de dados” do Yahoo! podem ser usadas de uma melhor forma com geodata.

O Google Latitude está em funcionamento a algum tempo e sua proposta (geo location) vai ajudar muito a filtrar o que rola na real-time web.

O Yahoo! não quer ficar de fora.

Yahoo! Placemaker™ Beta

Lançado recentemente em conjunto junto com o Y! Geoplanet™ o Placemaker™ não é uma solução de geo location.

O que ele faz na verdade é buscar em um documento por informações sobre “locais”.

O exemplo dado pela pagina do projeto é ruim de se entender por não enviar um texto e sim o nome exato do local.
Mas esse exemplo é interessante. Não deixe de ver.

O documento de resposta do Yahoo! contem o que é chamado de woeids.

Mas e ai, o que fazer com um “woeid”?

O woeid é na verdade uma identificação numérica referente a um local no GeoPlanet™.

GeoPlanet™

GeoPlanet é outro webservice do Y!. Lançado junto com o Placemaker promete ser útil em todo futuro desenvolvimento com geodata.
A busca por um “woeid” retorna dados específicos sobre o lugar. Dados que são organizados e catalogados pelo Y! e não exigem nenhum grande trabalho para quem for utilizar o serviço.

YQL

A linguagem de buscas YQL (Yahoo Query Language) é uma grande idéia e códigos que facilitam o uso dela já comeram a serem criados.

Conheça outras APIs do Y! (sim, existem mais!) e saiba o que é YQL e como utilizar a linguagem do Yahoo!