Exibir feed RSS com o Spring MVC

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.