@@ -85,3 +85,54 @@ Le service que nous allons exposer sous forme de ressource REST permet de faire
Le serveur Web qui hébergera notre ressource est lancé directement dans la classe [`Main`](src/main/java/fr/ulille/iut/tva/Main.java). 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`](src/main/java/fr/ulille/iut/tva/ressource/TvaRessource.java).
## Développement de la ressources
### Une première personnalisation
Pour l'instant, les ressources que nous allons développer seront disponibles à partir de l'URI suivante : `http://localhost:8080/myapp/`. Modifiez la classe `Main` de manière à ce que l'URI utilisée soit `http://localhost:8080/api/v1` correspondant à notre première version de l'API (Pour en savoir plus sur la façon de gérer les changements de version d'une API REST, vous pouvez consulter cet [aticle](https://medium.com/neoxia/rest-api-design-les-best-practices-conseill%C3%A9es-par-neoxia-1442e99d8671).
Profiter en pour lire les commentaires dans le code de cette classe. Cela pourra vous servir plus tard...
### La première méthode
#### Implémentation
Nous allons éditer la classe [`TvaRessource`](src/main/java/fr/ulille/iut/tva/ressource/TvaRessource.java). Cette ressource devra être accessible via l'URI suivante : `http://localhost:8080/api/v1/tva`. Pour cela, vous devez annoter la classe avec [`@Path`](https://eclipse-ee4j.github.io/jaxrs-api/apidocs/3.0.0/jakarta/ws/rs/Path.html) :
~~~java
@Path("tva")
publicclassTvaRessource{
}
~~~
Une classe annotée avec `@Path` sera reconnue automatiquement comme une ressource REST par Jersey. Le chemin indiqué ici est relatif, il sera combiné avec l'URI définie dans la classe `Main`.
Nous allons pouvoir fournir dans cette classe une première méthode Java accessible via une requête HTTP GET :
~~~java
@GET
@Path("tauxpardefaut")
publicfloatgetValeurTauxParDefaut(){
returnTauxTva.NORMAL.taux;
}
~~~
#### Test
Pour tester notre ressource, nous allons utiliser Maven pour compiler et lancer le serveur avec la commande `mvn compile exec:java` dans un terminal.
Dans un autre terminal, utilisez curl pour accéder à votre ressource et tester cette nouvelle méthode.
Vous devriez obtenir une réponse de ce type :
~~~
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 4
20.0
~~~
On peut remarquer que comme votre code a renvoyé un résultat sans lever d'erreur, Jersey a automatiquement :
- renvoyé le statut `200 OK`;
- choisi le type MIME le plus adapté pour le résultat renvoyé dans le corps de la réponse : `Content-Type: text/plain`;
- mis dans le corps de la réponse le résultat de votre méthode.