Vous pouvez représenter les documents Atom en utilisant des objets annotés JAXB, car le format Atom repose sur XML. Par conséquent, l'une des méthodes d'implémentation d'une méthode de ressource qui consomme et produit des flux Atom et des entrées Atom consiste à retourner un objet annoté JAXB qui utilise le modèle Atom. La bibliothèque JAX-RS fournit un modèle Atom reposant sur JAXB.
Pourquoi et quand exécuter cette tâche
Un modèle JAXB Atom est inclus dans le fichier JAR de bibliothèque Wink IBM® JAX-RS. Etant donné que le modèle repose sur JAXB, les objets utilisent automatiquement les fournisseurs d'entités JAXB intégrés pour lire et écrire les flux Atom et les entrées Atom. Voir les informations API pour plus d'informations sur les méthodes dans le modèle Atom.
Vous pouvez utiliser les classes suivantes pour représenter les entités de demande et les entités de réponse :
- 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
Vous pouvez également utiliser ces classes comme paramètre de méthode de ressource pour représenter une demande Atom entrante. De même, vous pouvez retourner ces classes comme réponse de ressource.
Configurations prises en charge: Il existe des bibliothèques tierces qui prennent en charge la fonctionnalité JAXB vers JSON.
Le modèle JAXB Atom utilise les fonctions de JAXB qui peuvent ne pas être prises en charge par les bibliothèques JAXB vers JSON tierces.
sptcfg
Procédure
- Créez un objet AtomFeed qui retourne un flux Atom comme corps de message de réponse dans la méthode de ressource.
@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();
}
- Pour ajouter des informations aux flux, appelez les méthodes sur l'objet AtomFeed Java™ et ajoutez des objets AtomEntry à la liste des flux.
@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);
}
- Retournez le flux dans la méthode 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;
}
- (Facultatif) Si un flux ou une entrée Atom sont envoyés dans une demande, vous pouvez ajouter l'un des types Atom sous la forme d'un paramètres à la méthode de ressource. En ajoutant l'un des types Atom sous la forme d'un paramètre à la méthode de ressource, les données d'un flux Atom entrant sont envoyées sous la forme d'un paramètre.
@javax.ws.rs.POST
public void postFeed(org.apache.wink.common.model.atom.AtomFeed incomingFeed) {
// use the incomingFeed object
}
Résultats
Vous avez utilisé le modèle Atom JAXB pour représenter des entités de demande et de réponse.