Рубрики
Без рубрики

Отображение RSS – канала с помощью Spring MVC

Узнайте, как опубликовать свой собственный RSS-канал с помощью Spring MVC

Автор оригинала: Donato Rimenti.

1. введение

В этом кратком руководстве будет показано, как создать простой RSS-канал с помощью Spring MVC и класса AbstractRssFeedView .

После этого мы также реализуем простой REST API – для предоставления нашего канала по проводу.

2. RSS-канал

Прежде чем перейти к деталям реализации, давайте сделаем краткий обзор того, что такое RSS и как он работает.

RSS-это тип веб-канала, который легко позволяет пользователю отслеживать обновления с веб-сайта. Кроме того, RSS-каналы основаны на XML-файле, который суммирует содержимое сайта. Агрегатор новостей может затем подписаться на один или несколько каналов и отображать обновления, регулярно проверяя, изменился ли XML.

3. Зависимости

Прежде всего, поскольку поддержка RSS Spring основана на римской платформе , нам нужно будет добавить ее в качестве зависимости к вашему pom , прежде чем мы сможем ее использовать:


    com.rometools
    rome
    1.10.0

Для получения путеводителя по Риму ознакомьтесь с нашей предыдущей статьей .

4. Реализация корма

Далее мы собираемся построить фактическую подачу. Для этого мы расширим класс AbstractRssFeedView и реализуем два его метода.

Первый получит Канал объект в качестве входных данных и заполнит его метаданными канала.

Другой вернет список элементов, который представляет содержимое ленты :

@Component
public class RssFeedView extends AbstractRssFeedView {

    @Override
    protected void buildFeedMetadata(Map model, 
      Channel feed, HttpServletRequest request) {
        feed.setTitle("Baeldung RSS Feed");
        feed.setDescription("Learn how to program in Java");
        feed.setLink("http://www.baeldung.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.baeldung.com/junit-5-test-annotation");
        entryOne.setPubDate(Date.from(Instant.parse("2017-12-19T00:00:00Z")));
        return Arrays.asList(entryOne);
    }
}

5. Разоблачение корма

Наконец, мы собираемся создать простой сервис REST, чтобы сделать наш канал доступным в Интернете . Служба вернет объект представления, который мы только что создали:

@RestController
public class RssFeedController {

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

Кроме того, поскольку мы используем Spring Boot для запуска нашего приложения, мы реализуем простой класс запуска:

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

После запуска нашего приложения при выполнении запроса к нашему сервису мы увидим следующую RSS-ленту:



    
        Baeldung RSS Feed
        http://www.baeldung.com
        Learn how to program in Java
        
            JUnit 5 @Test Annotation
            http://www.baeldung.com/junit-5-test-annotation
            Tue, 19 Dec 2017 00:00:00 GMT
            [email protected]
        
    

6. Заключение

В этой статье рассказывалось о том, как создать простой RSS-канал с помощью Spring и ROME и сделать его доступным для потребителей с помощью веб-сервиса.

В нашем примере мы использовали Spring Boot для запуска нашего приложения. Для получения более подробной информации по этой теме продолжайте читать эту вводную статью о Spring Boot .

Как всегда, весь используемый код доступен на GitHub .