SpringMVCでRSSフィードを表示する
1. 序章
このクイックチュートリアルでは、SpringMVCとAbstractRssFeedViewクラスを使用して簡単なRSSフィードを作成する方法を示します。
その後、単純なREST APIも実装し、フィードをネットワーク上で公開します。
2. RSSフィード
実装の詳細に入る前に、RSSとは何か、そしてRSSがどのように機能するかについて簡単に確認しましょう。
RSSは、ユーザーがWebサイトからの更新を簡単に追跡できるようにするWebフィードの一種です。 さらに、 RSSフィードは、サイトのコンテンツを要約したXMLファイルに基づいています。ニュースアグリゲーターは、XMLが変更されたかどうかを定期的にチェックすることで、1つ以上のフィードを購読し、更新を表示できます。
3. 依存関係
まず、 SpringのRSSサポートはROMEフレームワークに基づいているため、依存関係としてpomに追加する必要があります。実際に使用する前に:
<dependency>
<groupId>com.rometools</groupId>
<artifactId>rome</artifactId>
<version>1.10.0</version>
</dependency>
ローマのガイドについては、以前の記事をご覧ください。
4. フィードの実装
次に、実際のフィードを作成します。 それをするために、
最初のオブジェクトは、入力として Channel オブジェクトを受け取り、フィードのメタデータを入力します。
もう1つは、フィードのコンテンツを表すアイテムのリストを返します:
@Component
public class RssFeedView extends AbstractRssFeedView {
@Override
protected void buildFeedMetadata(Map<String, Object> 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<Item> buildFeedItems(Map<String, Object> 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. フィードの公開
最後に、フィードをWebで利用できるようにする簡単な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フィードが表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Baeldung RSS Feed</title>
<link>http://www.baeldung.com</link>
<description>Learn how to program in Java</description>
<item>
<title>JUnit 5 @Test Annotation</title>
<link>http://www.baeldung.com/junit-5-test-annotation</link>
<pubDate>Tue, 19 Dec 2017 00:00:00 GMT</pubDate>
<author>[email protected]</author>
</item>
</channel>
</rss>
6. 結論
この記事では、SpringとROMEを使用して簡単なRSSフィードを作成し、Webサービスを使用して消費者が利用できるようにする方法について説明しました。
この例では、SpringBootを使用してアプリケーションを起動しました。 このトピックの詳細については、 SpringBootに関するこの紹介記事を読み続けてください。
いつものように、使用されるすべてのコードはGitHubで利用できます。