Guia rápido de RSS com Roma

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.