Afficher le flux RSS avec Spring MVC

Afficher le flux RSS avec Spring MVC

1. introduction

Ce tutoriel rapide montrera comment créer un flux RSS simple à l'aide de Spring MVC et de la classeAbstractRssFeedView.

Ensuite, nous mettrons également en œuvre une API REST simple - pour exposer notre alimentation sur le fil.

2. Flux RSS

Avant d'entrer dans les détails de la mise en œuvre, examinons rapidement ce qu'est le RSS et son fonctionnement.

Le flux RSS est un type de flux Web qui permet facilement à un utilisateur de suivre les mises à jour d'un site Web. De plus,RSS feeds are based on an XML file which summarizes the content of a site. Un agrégateur de news peut alors s'abonner à un ou plusieurs flux et afficher les mises à jour en vérifiant régulièrement si le XML a changé.

3. Les dépendances

Tout d'abord, puisqueSpring’s RSS support is based on the ROME framework,we’ll need to add it as a dependency à notrepom  avant de pouvoir l'utiliser:


    com.rometools
    rome
    1.10.0

Pour un guide de Rome, jetez un œil à nosprevious article.

4. Mise en œuvre de l'alimentation

Ensuite, nous allons créer le flux réel. Pour ce faire,we’ll extend the AbstractRssFeedView class and implement two of its methods.

Le premier recevra un objetChannel en entrée et le remplira avec les métadonnées du flux.

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. Exposer le flux

Enfin, nous allons créer un service REST simple pourmake our feed available on the web. Le service retournera l'objet vue que nous venons de créer:

@RestController
public class RssFeedController {

    @Autowired
    private RssFeedView view;

    @GetMapping("/rss")
    public View getFeed() {
        return view;
    }
}

De plus, comme nous utilisons Spring Boot pour démarrer notre application, nous allons implémenter une classe de lanceur simple:

@SpringBootApplication
public class RssFeedApplication {
    public static void main(final String[] args) {
        SpringApplication.run(RssFeedApplication.class, args);
    }
}

Après avoir exécuté notre application, lors de l'exécution d'une demande à notre service, nous verrons le flux RSS suivant:



    
        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. Conclusion

Cet article explique comment créer un simple flux RSS avec Spring et ROME et le rendre disponible pour les consommateurs à l'aide d'un service Web.

Dans notre exemple, nous avons utilisé Spring Boot pour démarrer notre application. Pour plus de détails sur ce sujet,continue reading this introductory article on Spring Boot.

Comme toujours, tout le code utilisé est disponibleover on GitHub.