IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

REST Discussion :

Simplifiez REST et Ajax avec Robusta Web Library [Tutoriel]


Sujet :

REST

  1. #1
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut Simplifiez REST et Ajax avec Robusta Web Library
    Bonjour,
    Je vous propose un (long) tutoriel pour utiliser efficacement REST et Ajax en utilisant un serveur Java et ma bibliothèque Robusta Web Library.

    http://nicolas-zozol.developpez.com/.../rest/robusta/

    Robusta devrait également s'intégrer dans toute application web, même si elle n'utilise ni Rest, ni Ajax.

    Bonne lecture
    Nicolas

  2. #2
    Nouveau membre du Club
    Profil pro
    Architecte
    Inscrit en
    Mai 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2005
    Messages : 18
    Points : 31
    Points
    31
    Par défaut Exemples avec un Provider
    Bonjour,

    Ton tutoriel est intéressant. Personnellement j'utilise directement Restlet avec son extension JAX-RS et Spring.

    J'ai une seule critique (qui vaut souvent pour les exemples JAX-RS) : il manque une illustration de l'utilisation des "Provider". Concrètement, dans l'exemple "registerUser", au lieu de prendre en paramètre une chaîne et de retourner un object Response, c'est de travailler directement avec les objecs du domaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    User registerUser(User pUser) { ... }
    et le provider de lecture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @Provider
    @Consumes(MediaType.APPLICATION_XML)
    public class SimpleXMLMessageBodyReader implements MessageBodyReader<Object> {
     public boolean isReadable(final Class<?> pType, final Type pGenericType, final Annotation[] pAnnotations, final MediaType pMediaType) {
        // si type est User et si media es XML
    ...
     }
    
    public Object readFrom(final Class<Object> pType, final Type pGenericType, final Annotation[] pAnnotations, final MediaType pMediaType,
          final MultivaluedMap<String, String> pHeaders, final InputStream pInputStream) throws IOException {
      // lecture du XML en USer
      User user = new User();
      ...
      return user;
    }
    }
    L'avantage est de faire une ressource REST utilisable pour plusieurs types MIME et de déléguer la sérialisation/désérialisation à des objets dédiés.

    Mais encore une fois, bravo pour ce tutoriel.

  3. #3
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    Citation Envoyé par ghoudmon Voir le message
    J'ai une seule critique (qui vaut souvent pour les exemples JAX-RS) : il manque une illustration de l'utilisation des "Provider". Concrètement, dans l'exemple "registerUser", au lieu de prendre en paramètre une chaîne et de retourner un object Response, c'est de travailler directement avec les objecs du domaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    User registerUser(User pUser) { ... }
    (...)
    L'avantage est de faire une ressource REST utilisable pour plusieurs types MIME et de déléguer la sérialisation/désérialisation à des objets dédiés.
    Je n'avais que partiellement lu les Providers, et pas utilisé. Cela ira très bien avec l'interface RestManager qui inclue les methodes getXml() et decodeXml(String xml), permettant ainsi une sérialisation/désérialisation personalisée.
    Comme le tuto est déjà trop long, j'avais prévu d'en parler séparemment...d'ici décembre . J'aurais le temps de me faire la main sur les Providers d'ici là.

    Avant de passer en 1.0, il sera peut-être temps de renommer RestManager en ResourceSerializer, un truc du genre
    Mais encore une fois, bravo pour ce tutoriel.
    Thanx

  4. #4
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    Un peu de travail plus tard : l'interface Resource contient la méthode getRepresentation() au lieu de getXml(), ce qui est évidemment plus logique.

    L'interface RepresentationManager (au lieu de RestManager) s'occupe de la serialisation/deserialisation en XML et peut évidemment être étendue pour les autres JSON.

    Des exemples avec les Provider un peu plus tard

Discussions similaires

  1. [Article] Simplifiez REST et Ajax avec Robusta Web Library
    Par nicorama dans le forum Services Web
    Réponses: 0
    Dernier message: 27/08/2009, 12h21
  2. Réponses: 0
    Dernier message: 27/08/2009, 12h21
  3. Pb provider perso avec Appli web ajax
    Par maveric dans le forum ASP.NET
    Réponses: 5
    Dernier message: 01/03/2007, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo