Exibir feed RSS com o Spring MVC
1. Introdução
Este tutorial rápido mostrará como construir um feed RSS simples usando Spring MVC e a classeAbstractRssFeedView.
Posteriormente, também implementaremos uma API REST simples - para expor nosso feed durante a transmissão.
2. Feed RSS
Antes de entrar nos detalhes da implementação, vamos fazer uma revisão rápida sobre o que é RSS e como funciona.
RSS é um tipo de feed da Web que permite facilmente ao usuário acompanhar as atualizações de um site. Além disso,RSS feeds are based on an XML file which summarizes the content of a site. Um agregador de notícias pode se inscrever em um ou mais feeds e exibir as atualizações verificando regularmente se o XML mudou.
3. Dependências
Em primeiro lugar, comoSpring’s RSS support is based on the ROME framework,we’ll need to add it as a dependency para nossopom antes de podermos realmente usá-lo:
com.rometools
rome
1.10.0
Para um guia de Roma, dê uma olhada em nossoprevious article.
4. Implementação de feed
Em seguida, vamos construir o feed real. Para fazer isso,we’ll extend the AbstractRssFeedView class and implement two of its methods.
O primeiro receberá um objetoChannel como entrada e o preencherá com os metadados do feed.
The other will return a list of items which represents the feed’s content:
@Component
public class RssFeedView extends AbstractRssFeedView {
@Override
protected void buildFeedMetadata(Map model,
Channel feed, HttpServletRequest request) {
feed.setTitle("example RSS Feed");
feed.setDescription("Learn how to program in Java");
feed.setLink("http://www.example.com");
}
@Override
protected List- buildFeedItems(Map
model,
HttpServletRequest request, HttpServletResponse response) {
Item entryOne = new Item();
entryOne.setTitle("JUnit 5 @Test Annotation");
entryOne.setAuthor("[email protected]");
entryOne.setLink("http://www.example.com/junit-5-test-annotation");
entryOne.setPubDate(Date.from(Instant.parse("2017-12-19T00:00:00Z")));
return Arrays.asList(entryOne);
}
}
5. Expondo o feed
Finalmente, vamos construir um serviço REST simples paramake our feed available on the web. O serviço retornará o objeto de exibição que acabamos de criar:
@RestController
public class RssFeedController {
@Autowired
private RssFeedView view;
@GetMapping("/rss")
public View getFeed() {
return view;
}
}
Além disso, como estamos usando Spring Boot para iniciar nosso aplicativo, implementaremos uma classe de iniciador simples:
@SpringBootApplication
public class RssFeedApplication {
public static void main(final String[] args) {
SpringApplication.run(RssFeedApplication.class, args);
}
}
Depois de executar nosso aplicativo, ao realizar uma solicitação ao nosso serviço, veremos o seguinte RSS Feed:
example RSS Feed
http://www.example.com
Learn how to program in Java
-
JUnit 5 @Test Annotation
http://www.example.com/junit-5-test-annotation
Tue, 19 Dec 2017 00:00:00 GMT
[email protected]
6. Conclusão
Este artigo descreveu como criar um feed RSS simples com Spring e ROME e disponibilizá-lo para os consumidores usando um serviço da Web.
Em nosso exemplo, usamos o Spring Boot para iniciar nosso aplicativo. Para obter mais detalhes sobre este tópico,continue reading this introductory article on Spring Boot.
Como sempre, todo o código usado está disponívelover on GitHub.