Sie können Atom-Dokumente mit JAXB-Annotationen darstellen, weil das Atom-Format auf XML basiert. Daher
kann man eine Ressourcenmethode, die Atom-Feeds und Atom-Einträge konsumiert und erstellt,
dadurch implementieren, indem man ein Objekt mit JAXB-Annotationen, das das Atom-Modell verwendet, zurückgeben. Die
JAX-RS-Bibliothek stellt ein auf JAXB-basiertes Atom-Modell bereit.
Informationen zu diesem Vorgang
Ein JAXB-Atom-Modell ist in der JAR-Datei der auf Apache Wink basierenden IBM® JAX-RS-Bibliothek enthalten. Da das
Modell auf JAXB basiert, verwenden die Objekte automatisch die integrierten JAXB-Entitätsprovider für Lese- und Schreibzugriffe auf Atom-Feeds und Atom-Einträge.
Ausführliche Informationen zu den Methoden im Atom-Modell finden Sie in den API-Informationen.
Mit den folgenden Klassen können Sie
Anforderungsentitäten oder Antwortentitäten darstellen:
- 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
Sie können diese Klassen auch als Ressourcenmethodenparameter
für die Darstellung eingehender Atom-Anforderungen verwenden. Analog dazu können Sie alle Klassen als Ressourcenantworten zurückgeben.
Unterstützte Konfigurationen: Es gibt verschiedene Bibliotheken von Fremdanbietern, die JAXB für JSON-Funktionen unterstützen. Das JAXB-Atom-Modell
verwendet JAXB-Features, die möglicherweise nicht von den JAXB-to-JSON-Bibliotheken von Fremdanbietern unterstützt werden.
sptcfg
Vorgehensweise
- Erstellen Sie ein neues AtomFeed-Objekt, das einen Atom-Feed als Antwortnachrichtentext in Ihrer Ressourcenmethode zurückgibt.
@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();
}
- Wenn Sie Informationen zum Feed hinzufügen möchten, müssen Sie Methoden für
das AtomFeed-Java™-Objekt aufrufen und AtomEntry-Objekte zur Liste der Feeds hinzufügen.
@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);
}
- Geben Sie den Feed an die Java-Methode zurück.
@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;
}
- Optional: Wenn ein Atom-Feed oder ein Atom-Eintrag in einer Anforderung gesendet wird,
können Sie einen der Atom-Typen als Parameter zur Ressourcenmethode hinzufügen. Indem Sie einen der Atom-Typen als Parameter zur Ressourcenmethode hinzufügen, werden alle eingehenden Atom-Feed-Daten als Parameter übergeben.
@javax.ws.rs.POST
public void postFeed(org.apache.wink.common.model.atom.AtomFeed incomingFeed) {
// Objekt incomingFeed verwenden
}
Ergebnisse
Sie haben das Atom-JAXB-Modell verwenden, um Anforderungs- und Antwortentitäten darzustellen.