Skip to content
Snippets Groups Projects
Commit 83a535d8 authored by Yvan Peter's avatar Yvan Peter
Browse files

première méthode

parent 3486593e
No related branches found
No related tags found
No related merge requests found
......@@ -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")
public class TvaRessource {
}
~~~
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")
public float getValeurTauxParDefaut() {
return TauxTva.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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment