Desenvolvimento - Java
Formato RSS e Java
A cada dia é mais comum encontrarmos sites que possuem pequenos quadrados na cor laranja, referenciando "RSS", "XML" ou "Atom". No próprio "Linha de Código", podemos observar estas figuras...
por Eric C M OliveiraA cada dia é mais comum encontrarmos sites que possuem pequenos quadrados na cor laranja, referenciando "RSS", "XML" ou "Atom". No próprio "Linha de Código", podemos observar estas figuras. Trata-se de um recurso para que se possa ter acesso ao conteúdo de diversos sites em um ponto único para tal.
O formato RSS (Really Simple Syndication), que foi criado em 1999, é um recurso desenvolvido via namespaces XML (Extensible Markup Language) que atualmente é usado para a divulgação de conteúdo web. Junto ao RSS, encontramos o RDF, sigla para Resource Description Framework, do qual trata de uma especificação normalmente também baseada em XML que tem como objetivo automatizar e ampliar recursos para a internet através de representação de informações. O RDF tem utilidade em várias aplicações, como em sistemas de busca e mecanismos de compartilhamento de informação. Além disso, há o atom, que também é um formato para divulgação de notícias.
Para se ter acesso ao conteúdo de diversos sites sem a necessidade de visitá-los é necessário o uso de leitores RSS ou agregadores, que reúnem parte desse conteúdo em uma só interface. Os arquivos RSS, também conhecidos por feeds, podem trazer um título e um link de acesso ao conteúdo completo desta. Resumindo, o agregador busca os feeds de sites escolhidos pelo usuário e os apresenta em um formato único semelhante ao dos gerenciadores de e-mail. Existem agregadores que rodam diretamente no computador do usuário, e outros que funcionam pelo navegador, de maneira semelhante aos serviços de webmail.
Não será nosso objetivo neste artigo, entrar em detalhes do formato RSS. No próprio Linha de Código, o assunto já foi muito bem abordado (ver referências).
Em se falando de Java especificamente, temos o projeto Informa, uma API Java para desenvolvimento com arquivos RSS. Este projeto é o resultado do merge entre dois serviços Java, o HotSheet e Risotto. No site do sorceforge é possível encontrar os arquivos jars necessários para se utilizar essa biblioteca.
Abaixo, por exemplo, temos um trecho de código simples, responsável pela leitura de um arquivo RSS:
try { URL feed = new URL("file:/C:/meuArquivoFeed.rss"); ChannelFormat format = FormatDetector.getFormat(feed); ChannelParserCollection parsers = ChannelParserCollection.getInstance(); ChannelParserIF parser = parsers.getParser(format, feed); parser.setBuilder(new ChannelBuilder()); ChannelIF channel = parser.parse(); for (Iterator iter = channel.getItems().iterator(); iter.hasNext();) { ItemIF item = (ItemIF)iter.next(); System.out.println(item.getTitle()); } } catch (MalformedURLException mue) { mue.printStackTrace(); } catch (UnsupportedFormatException ufe) { ufe.printStackTrace(); } catch (ParseException pe) { pe.printStackTrace(); }
É possível também assim criar simples JavaBeans para a chamada a arquvos RSS, ou mesmo taglibs JSP.
Abaixo segue uma página JSP que faz uma requisição a um feed do Linha de Código via taglib:
<%@ taglib prefix="rss" uri="/WEB-INF/rsstaglib.tld" %> <rss:simpleRssFeed uri="http://www.linhadecodigo.com.br/rss/artigos_geral.xml"/>
Teríamos então um Bean chamado SimpleRssFeedTag, herdada de TagSupport. Este bean seria formado pelo uri, os métodos get, set e doEndTag(), que seria o responsável pelo parser do feed rss.
Uma ótima opção para entender o funcionamento de Java com o formato RSS é a ferramenta do tipo agregadora ThinFeeder, um projeto open-source brasileiro. Além de ter uma ótima opção de ferramenta, é possível fazer o download do source da ferramenta e assim compreender um pouco mais a relação Java - Informa - RSS.
Referências:
http://informa.sourceforge.net/
http://thinfeeder.sourceforge.net/
http://www.linhadecodigo.com.br/artigos_impressao.asp?id_ac=551