Criando serviços XML com o Dapper.net [atualizado]

O dapper.net dapper.net/open é um daqueles sites que você descobre e imediatamente quer salvar naquele cantinho dos seus favoritos onde ficam as coisas mais úteis. Imagine um aplicativo que tem por objetivo absorver conteúdo de qualquer site da internet e dá pra começar a ter uma idéia do que o dapper é. O melhor do dapper é o seu potencial de se tornar qualquer coisa que o usuário imaginar. Mas como isso é feito?

Obtendo dados do Yahoo! Finance Brasil com o Dapper

Para o meu exemplo, eu queria obter dados de cotações de ações da bovespa. Achei o Yahoo! Finance uma ótima solução, porém o serviço deles só provia dados em CSV. Eu não queria trabalhar com CSV e sim com XML, então das duas uma: ou convertia o CSV para XML ou procurava um serviço XML que me atendesse. Foi aí que eu encontrei o dapper. Com o dapper eu consegui transformar o site do Yahoo! em um serviço XML que me retorna as cotações de uma ação com base em seu símbolo.

Começando

Através da url http://br.finance.yahoo.com/q?s=VALE3.SA é possível acessar as informações das ações da Vale na Bovespa. Trocando o parâmetro s da query string podemos acessar informações de outras ações. Com essa informação em mãos podemos começar a criar um serviço com o dapper. Na página inicial é possível buscar por serviços públicos informando apenas a url de origem e o formato, ou então criar seu próprio serviço, clicando em Create a new Dapp. É isso que vamos fazer.

Criando um novo Dapp

Criando um novo Dapp

Ao clicar em Create a new Dapp você é redirecionado para a Dapp Factory, que é onde a mágica acontece. No próprio site existe um vídeo explicando como a Dapp Factory funciona, mas eu também vou dar umas dicas.

Uma visão geral da Dapper Factory

Uma visão geral da Dapper Factory

Sabemos que o conteúdo que estamos procurando está no website do Yahoo! Finance Brasil, então só o que precisamos informar é a URL http://br.finance.yahoo.com/q?s=VALE3.SA e escolhermos o formato, no caso o XML.

Clicando em Next Step o dapper nos levará a uma página de coleta de dados. Estes dados irão ajudar a ferramenta a garimpar a página informada. Então vamos criar algumas amostras mudando o parâmetro da query string, como http://br.finance.yahoo.com/q?s=PETR4.SA e http://br.finance.yahoo.com/q?s=BBAS3.SA. Vá mudando os parâmetros da URL, clique em GO para acessar a página e finalmente em Add To Basket. Quando tiver três ou mais amostras, pode clicar em Next Step, para o dapper analisá-las.

Coletando as amostras

Coletando as amostras da VALE3.SA, PETR4.SA e BBAS3.SA

Depois de o dapper ter analisado as amostras, é hora de escolher os campos que farão parte do serviço, ou seja, quais são os dados que o dapper irá garimpar desta página para criar o seu serviço XML.

Escolhendo os campos

Escolhendo os campos

Escolha o campo e clique em Save Field para salvá-lo. O dapper pede que você dê um nome a ele e, futuramente, este nome será usado para criar o elemento correspondente no XML. Você pode criar campos com um ou mais elementos. Neste exemplo eu vou criei os campos NomeAcao e ValorAcao.

Criação dos campos NomeAcao e ValorAcao

Criação dos campos NomeAcao e ValorAcao

Clicando em Next Step vemos um preview do conteúdo extraído da página e podemos criar agrupamentos. Veja que eu criei o agrupamento Acao, contendo os campos NomeAcao e ValorAcao. Este agrupamento se tornará um nó no XML gerado pelo dapper.

Agrupando os campos

Agrupando os campos

Agora falta pouco. Ao salvarmos o dapper temos que prestar atenção no campo InputVariables, que é o campo que nos permite criar variáveis para o serviço. Os trechos da URL que irão mudar devem ser transformados em variáveis. No exemplo, eu removo o símbolo VALE3.SA (que é o símbolo das ações da Vale do Rio Doce) e crio a variável {SimboloAcao}, uma variável genérica que muda conforme a ação que desejamos consultar. É importante lembrar que as variáveis devem estar entre chaves.

Finalizando o serviço

Finalizando o serviço

Após salvar seu serviço, o dapper abrirá uma página de configuração, onde você poderá editar seu dapper e até mesmo utilizá-lo, pois ele já estará funcionando. O legal desta parte é que você pode alterar o formato do resultado em Choose Format.

Seu novo serviço está pronto para ser utilizado

Seu novo serviço está pronto para ser utilizado

Escolhendo XML e clicando em GO o dapper mostra o serviço em formato XML e a URL de acesso do mesmo, no nosso caso http://www.dapper.net/RunDapp?dappName=AcoesBovespaXML&v=1&v_SimboloAcao=PETR4.SA, onde a variável v_SimboloAcao pode ser alterada para qualquer outro símbolo que desejarmos consultar.

Dapper em XML

Dapper em XML - note a URL do serviço

Para você obter o XML deste serviço, basta acessar http://www.dapper.net/RunDapp?dappName=AcoesBovespaXML&v=1&v_SimboloAcao=PETR4.SA (troque PETR4.SA por qualquer outro símbolo da Bovespa que queira consultar).

Agora fica fácil integrar este serviço XML com qualquer frontend que precise manipulá-lo, como uma aplicação em Flex por exemplo.

[UPDATE] O dapper mudou de endereço, agora é http://www.dapper.net/open/.

Anúncios

4 Comentários

Arquivado em Artigos

4 Respostas para “Criando serviços XML com o Dapper.net [atualizado]

  1. Maneiro o Dapper! Screenscraping sem trabalho! Muito bom!
    Outra alternativa para obter dados do Yahoo! Finance é acessar a API diretamente. Você pode montar as queries e os dados são retornados em CSV. Mais informações sobre essa abordagem aqui: http://www.gummy-stuff.org/Yahoo-data.htm

  2. Pingback: Flex + Rails com RubyAMF « ramalho.wordpress.com

  3. Patrícia

    Gostaria de saber como faço para entrar no sistema para criar um serviço?
    Eu me cadastrei no Dapper e não sei onde acho essa tela que você está explicando.
    Obrigada
    Patricia

  4. Oi @patricia, o endereço mudou, agora é http://www.dapper.net/open/

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s