JAXB アノテーション付きオブジェクトを使用すると Atom 文書を表示できます。これは Atom 形式が XML に基づいているためです。そのため、Atom フィードおよび Atom エントリーを取り込んだり作成したりするリソース・メソッドを実装する 1 つの方法は、Atom モデルを使用する JAXB アノテーション付きオブジェクトを戻すことです。JAX-RS ライブラリーは JAXB に基づいた Atom モデルを提供します。
このタスクについて
JAXB Atom モデルは、Apache Wink ベースの IBM® JAX-RS ライブラリーの JAR ファイルに含まれます。このモデルは JAXB に基づいていることから、Atom フィードと Atom エントリーの読み取りおよび書き込みに、組み込まれた JAXB エンティティー・プロバイダーが自動的にオブジェクトで使用されます。Atom モデルのメソッドについて詳しくは、API に関する資料を参照してください。
次のクラスを使用すると、要求エンティティーまたは応答エンティティーを示すことができます。
- org.apache.wink.common.model.atom.AtomEntry
- org.apache.wink.common.model.atom.AtomFeed
- org.apache.wink.common.model.synd.SyndEntry
- org.apache.wink.common.model.synd.SyndFeed
また、これらのクラスをリソース・メソッド・パラメーターとして使用すると、着信 Atom 要求を表示することもできます。同様に、これらのクラスのいずれでもリソース応答として返すことができます。
サポートされる構成: JAXB から JSON への変換機能をサポートするサード・パーティーのライブラリーがいくつかあります。JAXB Atom モデルでは、サード・パーティーの JAXB から JSON への変換ライブラリーではサポートされていない JAXB 機能が使用できます。
sptcfg
手順
- Atom フィードを応答メッセージ本体としてリソース・メソッドに戻す、新規の AtomFeed オブジェクトを作成します。
@javax.ws.rs.GET
public org.apache.wink.common.model.atom.AtomFeed getFeed() {
org.apache.wink.common.model.atom.AtomFeed feed = new org.apache.wink.common.model.atom.AtomFeed();
}
- フィードに情報を追加するには、AtomFeed Java™ オブジェクトのメソッドを呼び出し、AtomEntry オブジェクトをフィード・リストに追加します。
@javax.ws.rs.GET
public org.apache.wink.common.model.atom.AtomFeed getFeed() {
org.apache.wink.common.model.atom.AtomFeed feed = new org.apache.wink.common.model.atom.AtomFeed();
feed.setTitle(new org.apache.wink.common.model.atom.AtomText("Feed Title"));
org.apache.wink.common.model.atom.AtomEntry entry = new org.apache.wink.common.model.atom.AtomEntry();
entry.setTitle(new org.apache.wink.common.model.atom.AtomText("Entry Title"));
entry.setId("1");
org.apache.wink.common.model.atom.AtomLink link = new org.apache.wink.common.model.atom.AtomLink();
link.setHref("http://www.example.com/");
List< org.apache.wink.common.model.atom.AtomLink> entryLinks = entry.getLinks();
entryLinks.add(link);
List< org.apache.wink.common.model.atom.AtomEntry> entries = af.getEntries();
entries.add(entry);
}
- Java メソッドでフィードを戻します。
@javax.ws.rs.GET
public org.apache.wink.common.model.atom.AtomFeed getFeed() {
org.apache.wink.common.model.atom.AtomFeed feed = new org.apache.wink.common.model.atom.AtomFeed();
feed.setTitle(new org.apache.wink.common.model.atom.AtomText("Feed Title"));
org.apache.wink.common.model.atom.AtomEntry entry = new org.apache.wink.common.model.atom.AtomEntry();
entry.setTitle(new org.apache.wink.common.model.atom.AtomText("Entry Title"));
entry.setId("1");
org.apache.wink.common.model.atom.AtomLink link = new org.apache.wink.common.model.atom.AtomLink();
link.setHref("http://www.example.com/");
List< org.apache.wink.common.model.atom.AtomLink> entryLinks = entry.getLinks();
entryLinks.add(link);
List< org.apache.wink.common.model.atom.AtomEntry> entries = af.getEntries();
entries.add(entry);
return entries;
}
- (オプション) Atom フィードまたはエントリーが要求で送信される場合、Atom タイプの 1 つをパラメーターとしてリソース・メソッドに追加できます。 Atom タイプの 1 つをパラメーターとしてリソース・メソッドに追加すると、すべての着信 Atom フィード・データはパラメーターとして渡されます。
@javax.ws.rs.POST
public void postFeed(org.apache.wink.common.model.atom.AtomFeed incomingFeed) {
// use the incomingFeed object
}
タスクの結果
Atom JAXB モデルを使用して、要求エンティティーおよび応答エンティティーを表示することができました。