Skip to content
Snippets Groups Projects
Select Git revision
  • 3486593e06bb39264a2c53eb92816a74ef5651a0
  • master default protected
2 results

rest-tutoriel

Forked from Yvan Peter / rest-tutoriel
12 commits behind the upstream repository.

Tutoriel REST - premier développement d'une ressource

Pour ce premier TP REST, nous allons voir les principaux éléments du développement d'une ressource :

  • POJO annoté
  • Objets de transfert (Data Transfer Object - DTO)
  • Gestion des représentations (JSON ou XML)
  • Gestion du cache (ETag)

Mise en place de l'environnement

Le développement sera basé sur Jersey qui fournit une implémentation de référence de JAX-RS. Vous trouverez dans la documentation l'utilisation des annotation standards ainsi que les aspects spécifiques de la plate-forme.

Le développement avec Jersey implique l'utilisation de Maven pour la gestion des phases de développement. Maven va télécharger les librairies nécessaires depuis un dépôt extérieur. Il faut donc le configurer pour passer par le proxy quand vous êtes en salle de TP.

Dans le répertoire ~/.m2/ (a créer si nécessaire), créez le fichier 'settings.xml' avec le contenu suivant :

<settings>
  <proxies>
	<proxy>
  	  <id>ulille-proxy</id>
      <active>true</active>
	  <protocol>http</protocol>
	  <host>cache.univ-lille.fr</host>
	  <port>3128</port>
   	</proxy>
	<proxy>
	  <id>lille1-proxy-sec</id>
	  <active>true</active>
	  <protocol>https</protocol>
	  <host>cache.univ-lille.fr</host>
	  <port>3128</port>
	</proxy>
  </proxies>
</settings>

Configuration de Maven

Le projet que vous avez récupéré contient le fichier de configuration pom.xml. Le projet est actuellement configuré pour utiliser java 11 :

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
  <inherited>true</inherited>
  <configuration>
    <release>11</release>
  </configuration>
</plugin>

Le code récupéré

L'arborescence de source contient les fichiers suivants :

src
├── main
│   └── java
│       └── fr
│           └── ulille
│               └── iut
│                   └── tva
│                       ├── DebugMapper.java
│                       ├── dto
│                       ├── Main.java
│                       ├── ressource
│                       │   └── TvaRessource.java
│                       └── service
│                           ├── CalculTva.java
│                           └── TauxTva.java
└── test
    └── java
        └── fr
            └── ulille
                └── iut
                    └── tva

Pour ce TP, nous n'utiliserons pas l'arborescence de tests (ça sera pour la prochaine fois :-)). Il n'y aura pas de base de données à gérer afin de pouvoir nous concentrer sur la mise ne place d'une ressource REST.

Le service que nous allons exposer sous forme de ressource REST permet de faire des calculs de TVA. La définition des différents taux se trouve dans la classe TauxTva et les différents calculs possibles dans la classe CalculTva.

Le serveur Web qui hébergera notre ressource est lancé directement dans la classe Main. Cette classe met également en place l'environnement Jersey qui va rechercher dans les paquetages définis les ressources disponibles.

Le développement de la ressource se fera dans la classe TvaRessource.