 -
Page 1
TP3 : Création de services Web REST
  -



         -    

1. Présentation

protocole SOAP. Mais une autre approche des services Web et qui devient de plus en
plus populaire existe: REST. Le concept introduit en 2000 ne fait qu'utiliser les principes
fondamentaux du Web. Utilisant le protocole HTTP, il permet l'envoi de messages sans
enveloppe SOAP et dans un encodage libre (XML, JSON, binaire, simple texte). Il est
actuellement très utilisé par les sites communautaires (ou réseaux sociaux) leur
permettant de proposer à leurs clients une API facile à utiliser. Des sites comme Flickr,
Facebook, Last.fm, Amazon proposent ainsi de telles API évitant à leurs clients de devoir
passer par la case SOAP.
2. Architecture

On accède à une ressource (par son URI unique) pour procéder à diverses opérations
(GET lecture / POST écriture / PUT modification / DELETE suppression), opérations
supportées nativement par HTTP.
3. Création d’un premier service web REST
-
1
        
2

            
-

Cer un nouveau projet : Java Web Web Application que vous nommerez
« WebServiceRest », vous choisirez Glassfish comme serveur.
Cer un nouveau package que vous nommerez comme vous le souhaitez.
1 https://jax-rs-spec.java.net/
2 https://jersey.java.net/
I. Votre Premier Service REST avec JAX-RS
 -
Page 2
Cer un service web Rest en cliquant sur NewOtherWebServiceRESTful
WebServices from Pattern. Sélectionner "Simple Root Resource". Dans la fetre
suivante, il faut rentrer les informations permettant de configurer le service Web
REST :
o Un nom de package (Resource Package)
o           


o Un nom de class (Class Name)
o Un type MIME pour le format de ponse du service Web. Modifier MIME
Type en sélectionnant « text/plain ».

« javax.ws.rs.core.Application ». Il faut savoir que vous avez également la
possibilide réaliser vous-même la gestion des ressources en configurant Jersey.
Une nouvelle classe est cée par défaut « GenericResource ». Vous allez supprimer
le code par faut et le remplacer par le code suivant :















          
retourne une réponse sous format texte "Mon premier service REST
3 signe d'une part l'URI d'accès au service et à ses
sous-services, et d'autre part la présence de paramètres dans cette URI.
Cinq annotations sont finies, qui peuvent annoter certaines méthodes
d'un service REST : @GET, @POST, @PUT, @DELETE, et @HEAD. Elles
correspondent aux cinq thodes HTTP qui portent le même nom. On ne
peut poser chaque annotation qu'une seule fois sur une unique thode
dans une classe done, pour un chemin d'accès don. La liste des
     te :
http://docs.oracle.com/javaee/6/tutorial/doc/gilik.html.
3 -
 -
Page 3
4. Déploiement et vérification de la disponibilité du service Web
Après avoir créée le service Web
partie de celle-           


surcharge les méthodes HTTP.
 
Faire un clean and build de votre projet et faire un deploy.
Faire un clic droit sur le service « GenericResource » et sélectionner « Test
Resource Uri ». Quel résultat obtenez-vous ? Pourquoi ?
Vous allez maintenant faire clic droit sur le projet Test Restful Web
services, ensuite vous lectionnez « web test client in the project » et
sélectionnez votre projet. Vous allez ouvrir le fichier WADL et décrire son
contenu.
            
retourne le message sous format XML. Tester votre service.
Vous allez ajouter une nouvelle méthode permettant de calculer le produit de
deux entiers. Le chemin de la ressource doit être ../produit et le type de MIME
sera soit du JSON soit du XML  le
produit de deux entiers est » . Vos arguments seront annotés avec
@QueryParam.
Vous allez ajouter des valeurs par faut gce à @DefaultValue et testez.
 @PathParam.
  4 et expliquer le sultat obtenu. A quoi servent
@Context et la classe URIInfo.
@GET
@Path("param")
public String getResource(@Context UriInfo uriInfo) {
return "The client used this URI to reach this resource method: " +
uriInfo.getAbsolutePath().toASCIIString();
}
Conseil : Prenez le soin de tester les différentes annotations proposées par JAX-RS.
Plusieurs exemples sont également disponibles sur le net56.



4 http://www.ibm.com/support/knowledgecenter/fr/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/twbs_jaxrs_contextobjects_uri.html
5 http://www.javainterviewpoint.com/jax-rs-rest-consumes-example/
6 https://www.mkyong.com/webservices/jax-rs/jax-rs-queryparam-example/
II. Création d’un service pour la gestion d’une liste d’étudiants
 -
Page 4

Cer une nouvelle application Web qui sera ployée sur le serveur Glassfish que vous
nommerez « WSRestGestionListe ».
Définir une classe Etudiant qui sera munie de deux attributs (nom et prénom) et définir
une classe listEtudiant pour rer une structure de données de type liste. La classe
listEtudiant va comprendre 5 thodes : ajoutEtudiantdansListe, modifEtudiant,
ConsultEtudiant, ConsultListEtudiant et supprimEtudiant.

Web Services from Patterns). Vous allez définir les méthodes exposées par le service
pour:
o 
o Ajouter des étudiants dans cette liste
o Modifier les informations relatives à un étudiant dans cette liste
o Consulter les informations relatives à un étudiant de cette liste
o Obtenir les informations sur tous les étudiants de la liste
o Supprimer un étudiant de cette liste
s par
le service Web.
rifier que votre application est bien déployée sur le serveur Glassfish.
Utiliser            
créé. Vous pouvez pour cela utiliser POSTER. Par exemple, pour utiliser la création de la
       : http://localhost:8080/
WSRestGestionListe/webresources/le_chemin/créerListEtudiant/2
Et valider en appuyant sur le bouton POST.
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !