0% ont trouvé ce document utile (0 vote)
16 vues5 pages

TP6 Rest

Le document décrit la création d'un projet web dynamique RESTful nommé helloRESTEasy utilisant WildFly. Il inclut des instructions pour configurer une ressource REST avec des annotations JAX-RS, ainsi que des exemples d'implémentation de méthodes pour traiter des requêtes GET avec des paramètres de chemin et de requête. Enfin, il présente la création d'un client pour consommer le service web RESTful développé.

Transféré par

montaest100
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)
16 vues5 pages

TP6 Rest

Le document décrit la création d'un projet web dynamique RESTful nommé helloRESTEasy utilisant WildFly. Il inclut des instructions pour configurer une ressource REST avec des annotations JAX-RS, ainsi que des exemples d'implémentation de méthodes pour traiter des requêtes GET avec des paramètres de chemin et de requête. Enfin, il présente la création d'un client pour consommer le service web RESTful développé.

Transféré par

montaest100
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

Université de Monastir A.

U : 2022 - 2023
Institut supérieur d'informatique de Mahdia Enseignants : Hamdi ALOULOU
Département Informatique Raouia Fredj

Les services web RESTFul

1. Créez un nouveau projet web dynamique nommé helloRESTEasy sans oublier de


générerle fichier « [Link] ». Choisissez WildFly comme Target Runtime.

2. Ouvrez le « Build Path » du projet et changez le « JRE System Library » à JavaSE–1.8


3. Créez une nouvelle classe Java nommée HelloWorldResource qui représente notre
ressource REST.
4. Ajoutez les annotations JAX-RS suivantes :
▪ @Path("/MyRESTApplication") permet de définir un chemin pour associer la
ressource HelloWorldResource à un URI
▪ @GET lecture de la ressource HelloWorldResource via une requête HTTP de type GET
▪ @Produces("text/plain") indique le type de représentation retournée par la requête
GET.

@Path("/MyRESTApplication")
public class HelloWorldResource {

@GET
@Produces("text/plain")
public String SayHello()
{
return "Hello World!";
}
5. RESTeasy est une implémentation de JBoss Open source de la spécification JAX-RS. Elle
fournit une Servlet qui prendra en charge le traitement des requêtes vers les services web
REST. Ainsi, il faut apporter les modifications suivantes au fichier « [Link] » de
l’application.

1
Université de Monastir A.U : 2022 - 2023
Institut supérieur d'informatique de Mahdia Enseignants : Hamdi ALOULOU
Département Informatique Raouia Fredj

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


<web-app xmlns:xsi="[Link]
xmlns="[Link] xsi:schemaLocation="[Link]
[Link] id="WebApp_ID" version="4.0">
<display-name>MyRESTApplication</display-name>
<servlet>
<servlet-name>Jersey Web app</servlet-name>
<servlet-class>[Link]</servlet-class>
<init-param>
<param-name>[Link]</param-name>
<param-value>helloREST</param-value>
</init-param>
<init-param>
<param-name>[Link]</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Jersey Web app</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

</web-app>
▪ <servlet>: c’est la servlet RESTEasy
▪ <servlet-mapping>: les URIs débutants par nom_application/ * seront traités par la
servlet RESTEasy
▪ <listener>: permet l’initialisation de la servlet RESTEasy
▪ <context-param> [Link]: les classes du projet seront scannées à la recherche
des annotations JAX-RS
6. Déployez le projet web dans le serveur WildFly.
7. Test du service RESTfull :
En tapant l’url [Link] on envoie une
requête HTTP de type GET demandant la lecture de la ressource HelloWorldResource.

[Link] MyRESTApplication

context root chemin ressource

2
Université de Monastir A.U : 2022 - 2023
Institut supérieur d'informatique de Mahdia Enseignants : Hamdi ALOULOU
Département Informatique Raouia Fredj

8. Création d’un service web RESTful paramétré


Maintenant on va changer le comportement de notre service web RESTful pour qu’il utilise des
Paramètres

@PathParam
L’annotation @PathParam récupère des arguments passés dans le chemin de l’URI.
Ajoutez la méthode suivante à la classe HelloWorldRessource :
@GET
@Path("/hello/{name}")
@Produces("text/plain")
public String SayHello(@PathParam("name") String name)
{
return "Hello " + name + " !";
}
Testez l’url suivante :
[Link]

@QueryParam
L’annotation @QueryParam récupère les valeurs des paramètres de la requête.
@GET
@Path("/hello2")
@Produces("text/plain")
public String SayHello2(@QueryParam("name") String name)
{
return "Hello " + name + " !";
}
Testez l’url suivante :
[Link]

3
Université de Monastir A.U : 2022 - 2023
Institut supérieur d'informatique de Mahdia Enseignants : Hamdi ALOULOU
Département Informatique Raouia Fredj

9. Création d’un client du service RESTful


Rappelons que JAX-RS est une spécification décrivant le développement des services
web REST côté serveur. Le framework RESTEasy fournit une implémentation de JAX-
RS mais aussi une autre implémentation côté client afin de consommer un service web
REST.
- Créez un nouveau projet java

- Créez une classe java et ajoutez le code suivant. Lancez l’application pour tester.
public class ClientHello {
public static void main(String[] args)
{
ClientRequest request1 = new
ClientRequest("[Link]
ClientRequest request2 = new ClientRequest("[Link]
helloRESTEasy/MyRESTApplication/hello/{n}");
[Link]("n", "foulen");
ClientRequest request3 = new ClientRequest("[Link]
helloRESTEasy/MyRESTApplication/hello2");
[Link]("name", "foulen");

ClientResponse<String> res1, res2, res3;

try {
res1 = [Link]([Link]);
[Link]([Link]());
res2 = [Link]([Link]);
[Link]([Link]());
res3 = [Link]([Link]);
[Link]([Link]());

} catch (Exception e) {
// TODO Auto-generated catch block
[Link]();
}
}

Vous aimerez peut-être aussi