Guia rápido de RSS com Roma
1. Visão geral
O RSS (Rich Site Summary ou Really Simple Syndication) é um padrão de feed da Web que fornece aos leitores um conteúdo agregado de vários locais. O usuário pode ver o que foi publicado recentemente em seus blogs favoritos, sites de notícias, etc. - tudo em um único lugar.
Os aplicativos também podem usar o RSS para ler, manipular ou publicar informações através de feeds RSS.
Este artigo fornece uma visão geral de como processar feeds RSS em Java com a API Rome.
2. Dependências do Maven
Precisamos adicionar a dependência da API de Roma ao nosso projeto:
rome
rome
1.0
Podemos encontrar a versão mais recente emMaven Central.
3. Criação de um novo feed RSS
Primeiro, vamos criar um novo feed RSS com a API Romeusing the default implementation SyndFeedImpl of the SyndFeed interface. Essa interface é capaz de lidar com todos os tipos de RSS, para que possamos sempre nos sentir seguros de usá-la:
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_1.0");
feed.setTitle("Test title");
feed.setLink("http://www.somelink.com");
feed.setDescription("Basic description");
Neste snippet, criamos um feed RSS com campos RSS padrão, como título, link e descrição. SyndFeed gives the opportunity of adding many more fields, incluindo autores, contribuidores, direitos autorais, módulos, datas de publicação, imagens, marcações estrangeiras e idiomas.
4. Adicionar uma entrada
Como criamos o feed RSS, agora podemos adicionar uma entrada a ele. No exemplo abaixo, nósuse the default implementation SyndEntryImpl of the SyndEntry interface para criar uma nova entrada:
SyndEntry entry = new SyndEntryImpl();
entry.setTitle("Entry title");
entry.setLink("http://www.somelink.com/entry1");
feed.setEntries(Arrays.asList(entry));
5. Adicionar uma descrição
Como nossa entrada está bem vazia até agora, vamos adicionar uma descrição para ela. Podemos fazer isso porusing the default implementation SyndContentImpl of the SyndContent interface:
SyndContent description = new SyndContentImpl();
description.setType("text/html");
description.setValue("First entry");
entry.setDescription(description);
Com o métodosetType, especificamos que o conteúdo de nossa descrição será um texto ou HTML.
6. Adicionando uma categoria
As entradas RSS são geralmente classificadas em categorias para simplificar a tarefa de encontrar entradas nas quais estamos interessados. Vamos ver como podemos adicionar uma categoria à entradausing the default implementation SyndCategoryImpl of the SyndCategory interface:
List categories = new ArrayList<>();
SyndCategory category = new SyndCategoryImpl();
category.setName("Sophisticated category");
categories.add(category);
entry.setCategories(categories);
7. Publicando o Feed
Já temos um feed RSS com uma entrada. Agora queremos publicá-lo. Para os fins deste artigo, por publicação, queremos dizer escrever o feed em um fluxo:
Writer writer = new FileWriter("xyz.txt");
SyndFeedOutput syndFeedOutput = new SyndFeedOutput();
syndFeedOutput.output(feed, writer);
writer.close();
8. Ler um feed externo
Já sabemos como criar um novo feed, mas às vezes precisamos nos conectar a um já existente.
Vamos ver como ler / carregar um feed, dado seu URL:
URL feedSource = new URL("http://rssblog.whatisrss.com/feed/");
SyndFeedInput input = new SyndFeedInput();
SyndFeed feed = input.build(new XmlReader(feedSource));
9. Conclusão
Neste artigo, mostramos como criar um feed RSS com algumas entradas, como publicar o feed e como ler feeds externos.
Como sempre, você pode verificar os exemplos fornecidos neste artigoover on GitHub.