0% ont trouvé ce document utile (0 vote)
67 vues32 pages

Introduction aux Web Services REST et SOAP

Le document décrit les web services, en particulier les services REST. Il explique les concepts clés des services REST tels que les ressources, les méthodes HTTP et les représentations de données.

Transféré par

kalai taycir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
67 vues32 pages

Introduction aux Web Services REST et SOAP

Le document décrit les web services, en particulier les services REST. Il explique les concepts clés des services REST tels que les ressources, les méthodes HTTP et les représentations de données.

Transféré par

kalai taycir
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les Web Services

Utilisation du web aujourd’hui

2 2
1
2
2
1 Serveur d’applications

1
1
2
2
1
2 2
Serveur d’applications

Demande de ressources

Resources
Utilisation du web aujourd’hui

Les ressources sont récupérées aux travers d’URL (s)

Exemple:
[Link]
Qu’est ce qu’un Web Service ?

• Service web = instance d’objet, ressource déployée sur Internet


• Permettent à des applications (web, mobile, etc.) de faire appel à des
fonctionnalités (via des objets) sur un réseau local ou Internet

• Evolution des systèmes distribués, architecture SOA (architecture orientée


service)
• Technologie initiée par IBM et Microsoft, puis normalisée par le W3C

• Un service web = composant développé dans n’importe quel langage sur


n’importe quelle plateforme.
• Il doit pouvoir être invoqué par n’importe quel autre service
Pourquoi les Web Services?

Auparavant, utilisation des RMI, Corba,…


=>utilisation de démons (services) particuliers

• Avec les web services, utilisation de serveurs web quelque soit la


plateforme les messages passent par le protocole HTTP

• Le fait d’utiliser les serveurs web sur ports ouverts (80,8080,…)


permet aux services web d’être accessibles facilement (pas de
problème de pare-feu)

5
Pourquoi les Web Services?

Utilisation d’HTTP:
 Protocole Internet
 Beaucoup d’entreprises possèdent un serveur web
 Protocole généralement autorisé au niveau de pare-feu
 Protocole disponible sur toutes les plateformes
 Mode non connecté

Requètes/réponses des services doivent être sérialisées pour réutilisation


 XML
 JSON
 autre (pas recommandé)

6
Pourquoi les Web Services?

Principalement 2 types d’architectures de services


• Services SOAP (Simple Object Access Protocol) = protocole basé sur
XML

• Services REST(Representational State Transfer )=> transfert sur HTTP

 Utilisation d’HTTP, sérialisation des données


 Appel direct via http
 Stateless

 Utilisation des méthode HTTP: PUT,GET, etc

 De base, pas de protocole de sécurité, pas de norme particulière


 Mais plus simple

7
REST  Fournisseurs
REST  Statistiques

Statistique d’utilisation des services web REST et SOAP chez AMAZON


RESTfulWeb Services

• Appel de ressources (Web) via une URL contenant un nom de


méthode et des paramètres
 URL peut avoir une grammaire complexe

 Utilisation d’une méthode HTTP qui décrit de façon brève la sémantique


de l’appel
• Les architectures RESTful sont construites à partir de ressources
uniquement identifiées par des URI(s)

10
RESTfulWeb Services

• Une ressource peut subir quatre opérations de bases CRUD


correspondant aux quatre principaux types de requêtes HTTP (GET,
PUT, POST, DELETE)
• REST s’appuie sur le protocole HTTP pour effectuer ces opérations sur
les objets
 CREATE  POST
 RETRIEVE  GET
 UPDATE  PUT
 DELETE  DELETE

11
Méthode GET

• La méthode GET renvoie une représentation de la ressource tel


qu’elle est sur le système

GET: [Link]

Statut : 200
Message : OK
Client En-tête : …. Serveur
Représentation : XML, JSON, html,…

Status codes in HTTP:


[Link]
Méthode POST

• La méthode POST crée une nouvelle ressource sur le système

POST: [Link]
Corps de la requête
Représentation : XML, JSON, html,…

Client Statut : 201, 204 Serveur


Message : Create, No content
En-tête : …..
Méthode DELETE

• Supprime la ressource identifiée par l’URI sur le serveur


Identifiant de la
ressource sur le
serveur
DELETE: [Link]

Client Statut : 200 Serveur


Message : OK
En-tête : …..
Méthode PUT

• Mise à jour de la ressource sur le système


Identifiant de la
ressource sur le
serveur
PUT: [Link]
En-tête : …..
Corps de la requête : XML, JSON,…

Client Statut : 200 Serveur


Message : OK
En-tête : …..
Services Web SOAP VS REST

<?xml version="1.0" encoding="UTF-8"?>


<S:Envelope xmlns:S="[Link]
xmlns:SOAP-ENV="[Link]
<SOAP-ENV:Header/>
<S:Body>
<ns2:hello xmlns:ns2="[Link]
<name>Master Cloud</name>
</ns2:hello>
</S:Body>
</S:Envelope>

SOAP
Client Serveur

[Link]

REST
Client Serveur
Services Web SOAP VS REST

SOAP
Avantages
 Standardisé
 Interopérabilité
 Sécurité (WS-Security)
Inconvénients
 Performances (enveloppe SOAP supplémentaire)
 Complexité, lourdeur
 Cible l’appel de service
Services Web SOAP VS REST

REST
Avantages
 Simplicité de mise en œuvre
 Lisibilité par un humain
 Evolutivité
 Repose sur les principes du web
 Représentations multiples (XML, JSON,…)
Inconvénients
 Sécurité restreinte par l’emploi des méthodes HTTP
 Cible l’appel de ressources
Introduction aux Services WebREST

• Implémentation d’une API en Java = JAX-RS (Java API for RESTful Web
Services) qui est intégrée à Java EE>6

• Décrite par les spécifications JSR 311 et JSR 339

• Plusieurs frameworks basés sur JAX-RS :


 RESTEasy, CXF, Jersey (oracle)
 Jersey 2 choisi dans ce cours ([Link]

• Possibilité d’utiliser Axis 2(Apache)


 [Link]

19
Introduction aux Services Web REST

• JSR 339

• Description
 des annotations à utiliser dans le code
 Du cycle de vie (via servlets)
 Des exceptions
 De la partie cliente
 Des URI
 Etc.

20
Architecture

Jersey => Développement basé sur l’implantation de POJO (Plain Old Java
Object), annotés et sur des requêtes HTTP

POJO POJO
HTTP servl
Client
et JAX-RS

Env. Java : ex: tomcat


Dans une application Web
Description du service
[Link]
REpresentational State Transfer (REST)

• Création de service:

• Principe:
 Construire des ressources HTTP simple et stateless
 A tout moment, pour un service donné, on connait les ressources
disponibles

• Création par approche Bottom/UP uniquement


• Création POJO+annotations
• Compilation et déploiement

22
Services Web RESTavec Jersey

Chemin du service
vu comme uneressource
@Path("generic")
public class GenericResource{ Type de requêteHTTP

@GET
@Produces("text/html") Type MIME deretour
public String getResp(){

return "<html><body>Bonjour Master Cloud </body></html";


//TODO return proper representationobject
// throw new UnsupportedOperationException();
Exception éventuelle

}
Déploiement et appel

 Déploiement en décrivant le service comme une Servlet (dans [Link]


pour tomcat/Glassfish)

<servlet>
<servlet-name>EssaisServlet</servlet-name>
<servlet-class>[Link]</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>EssaisServlet</servlet-name>
<url-pattern>/EssaisServlet</url-pattern>

</servlet-mapping>

=> les IDE tels que Netbeans ou Eclipse le font pour vous
Déploiement et appel

• Appel avec méthode GET:

25
Lesannotations

 Choix de la méthode HTTP


 Définition des paramètres
 Définition des types de retour
 Sérialisation

 Définis par des annotations dans le code


Lesannotations

 Annotation @path:
 Classe java représentant un service RESTdoit être annotée par
 @path => définit une ressource Racine (root)
 Path décrit une expression URI permettant d’appeler le service
 Ex: [Link]

Contexte de l’application Web Contexte service

27
Lesannotations

Sub ressource @Path


Possibilité d’annoter les méthodes de la classe également
url final = concaténation uri classe + uri méthode

@GET @Path(”appel”)
@Produces("text/html")
public String getResp(){

[Link]
Lesannotations

@Path peut également être complexe et donner des


paramètres (appelées Template Parameters)

Distinction d’une expression par les balises {}


@GET @Path(”appel/{texte}”)
@Produces("text/html")
public String getResp(@PathParam(”texte") String t) {

[Link]
Lesannotations

 Code de méthode :
@GET@Path("appel/{texte}")
@Produces("text/html")
public String getOb(@PathParam("texte") String texte) {

return "<html><body>test<br>"+texte+ "\n</body></html>";


//TODO return proper representation object
// throw new UnsupportedOperationException();
}

 Appel:
[Link]

La zone texte
Exemple de méthode GETavec retour text/HTML

 Code de méthode :
@GET
@Path("appel/texte-{texte}-detail-{det}")
@Produces("text/html")
public String getOb(@PathParam("texte") String t,
@PathParam("det") String d) {

return "<html><body>"+t+"<br>"+d+ "\n</body></html>";


//TODO return proper representation object
// throw new UnsupportedOperationException();
}

Appel:

[Link]

zone texte1 zone texte2


@HEAD, @Get, @Post, @Put, @Delete

 Méthodes du services doivent être annotées par une méthode http pour traitement

 Avec JAX-RS, il est possible d’utiliser @GET pour supprimer une ressource mais
 Ne respecte pasREST
 Manque de sens?
 Généralement description de méthodes CRUD (create, read, update, delete)
 @POST->creation ressource
 @GET->lecture
 @PUT->mise à jour
 @DELETE-> suppression de la ressource

Vous aimerez peut-être aussi