Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express

JBoss RESTeasy

14 mai, 2008

JBoss et plus particulièrement Bill Burke développe une implémentation open-source de la spécification JSR-311 (voir ancien article ici)
Je me suis permis de traduire cette page en français pour vous donner un petit aperçu de l’api.

JAX-RS Overview

JSR-311, JAX-RS est simplement un moyen de maper une requete et une réponse HTTP à un appel de méthode dans une class Java. Vous annotez la class ou l’interface avec une annotation qui branche cette classe sur une URI, puis vous mappez les méthodes de cette classes à des requêtes HTTP entrantes, comme sur cet exemple:

@Path("/library")
public class Library {

   @GET
   @Path("/book")
   public String getBooks() {...}

   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParm("isbn") String id) {
      // search my database and get a string representation and return it
   }

   @PUT
   @Path("/book/{isbn}")
   public void addBook(@PathParam("isbn") String id, @QueryParam("name") String name) {...}

   @DELETE
   @Path("/book/{id}")
   public void removeBook(@PathParam("id") String id {...}


}

Dans cet exemple, nous avons une ressource Library qui est accessible à travers le web. L’annotation @Path spécifie un chemin relatif pour localiser la ressource et invoquer une méthode. @GET, @PUT, et @DELETE correspondent aux méthodes standards du protocole HTTP. @PathParam récupère des arguments passés dans la ligne d’URI. @QueryParam récupère des donnés de la requête standard.
En conséquence pour récuperer la liste des livres nous pourrons spécifier l’URL suivante:

GET http://localhost:8080/library/book

La méthode Library.getBooks() sera appelée pour lister les livres de la bibliothèque (Library).

La requête GET http://host.com/library/book/332-444-111 affichera le livre dont le numéro ISBN est « 332-444-111 » en invoquant la méthode Library.getBook()

L’appel suivant: PUT http://host.com/library/book/332-444-111 aura pour effet d’ajouter un nouveau livre dans la bibliothèque avec pour ISBN le numéro « 332-444-111 ». Pour cela l’appel de type PUT HTTP sera mapé vers la méthode Library.addBook().

L’appel DELETE http://host.com/library/book/332-444-111 effacera le livre spécifié

Lorsqu’un client demande une ressource, le comportement par défaut est d’allouer un composant pour traiter la requête puis de l’effacer. Ceci peut aussi s’apparenter à une instance par requête. L’ambition de la spécification JAX-RS est aussi de fournir un mapping pour des EJB. RESTeasy de JBoss implémente donc ce modèle de comportement mais fourni aussi une intégration avec un objet enregistré via JNDI ou une intégration avec Spring.

Cet example ne montre qu’une partie des possibilités de JAX-RS. Il existe d’autres annotations qui permettent d’accéder facilement aux différentes parties d’une requête HTTP.
Voir le wiki de RESTeasy pour d’autres exemples.

(Traduction de l’anglais par Nicolas Martignole, article original http://wiki.jboss.org/wiki/RESTeasyOverview)

Articles similaires:

Default ThumbnailAstuces pour identifier la cause d'une java.io.NotSerializable et tuning JBoss Default ThumbnailLes 10 livres les plus achetés à JavaOne, la bonne liste Default ThumbnailPremiers tests de JBoss Seam Default ThumbnailAtelier JBoss ON the road et JBoss Seam 1.0.0 CR3

Derniers articles

  • Le chiffrement de bout en bout et la signature d’enveloppe

    Cela va faire bientôt un an que j’ai rejoint Doctolib. La sécurité

    8 mars, 2022
  • L’entretien de recrutement « System Design »

    Si vous postulez chez Doctolib, il y a une petite chance pour

    19 janvier, 2022
  • Retour sur la soirée du lundi 12 juillet chez Doctolib

    Nous sommes le lundi 12 juillet, il est 20h05 et comme pas

    14 août, 2021

Tweets @nmartignole

  • If you want to test Shadow, remote PC for Games, here is a code to get 5 euros: NICTOYTU https://t.co/8TnaP69RN4

    35 minutes ago
  • Is GraphQL a trap? https://t.co/xMMDtIVHHV … maybe only if you use GraphQL as a mirror of your DB only

    5 hours ago
  • A Git branching strategy for mono-repo and multiple releases https://t.co/OHys0xSbzr

    5 hours ago

Mots clés

Apple (32) Architecture (13) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (1) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (13) Perso (264) Recrutement (2) Scala (30) scrum (43) Société (2) Startup (20) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur Twitter : @nmartignole

Copyright© 2008 - 2020 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Log In
  • My Account
  • My Profile
  • Reset Password

Le Touilleur Express