Utilisation des objets de contexte JAX-RS pour obtenir plus d'informations sur les demandes

Java API for RESTful Web Services (JAX-RS) fournit différents types de contextes aux classes et aux fournisseurs de ressources. Vous pouvez utiliser des objets de contexte pour accéder aux informations de demande, telles que la reconnaissance des en-têtes HTTP envoyés dans le cadre d'une demande. Les objets de contexte fournissent également des méthodes pratiques pour évaluer une demande et créer une réponse appropriée.

Pourquoi et quand exécuter cette tâche

Les ressources d'application REST (Representational State Transfer) peuvent nécessiter d'analyser des données de contexte lors de l'appel. Par exemple, une méthode de ressource qui traite une requête HTTP GET peut vouloir analyser les en-têtes HTTP de la demande pour rechercher l'en-tête HTTP Accept-Language pour que la méthode puisse produire une réponse dans la langue définie par la demande.

JAX-RS définit une méthode simple pour extraire les données dans la portée de la ressource d'application. En déclarant l'annotation @Context avec l'objet approprié sous la forme d'un paramètre dans la méthode de ressource ou sous la forme d'une zone dans la classe de ressources, les données nécessaires sont injectée dans la ressource. L'implémentation JAX-RS remplit le paramètre ou la zone avec les données contextuelles et la méthode de ressource a accès à toutes les données contextuelles dont elle a besoin.

Vous pouvez utiliser les types d'interfaces suivants injectables par l'environnement d'exécution JAX-RS :
Types d'interfaces Description
javax.ws.rs.core.UriInfo L'interface UriInfo fournit l'identificateur URI défini par la demande. Cette interface peut également identifier la ou les ressources qui correspondent à l'identificateur URI de demande.
javax.ws.rs.core.Request L'interface Request fournit des informations sur la demande, telles que POST ou GET. Elle peut également évaluer les préconditions en fonction des balises d'entité de demande.
javax.ws.rs.core.HttpHeaders L'interface HttpHeaders fournit un accès en lecture seule à tous les en-têtes HTTP.
javax.ws.rs.core.SecurityContext L'interface SecurityContext fournit des informations accessibles en lecture seule sur la sécurité, telles que le schéma d'authentification ou le principal de sécurité.
javax.ws.rs.ext.Providers L'interface Providers permet d'extraire l'implémentation de ContextResolver, ExceptionMapper, MessageBodyWriter ou MessageBodyReader.

Outre les types d'interface JAX-RS, vous pouvez injecter des types de conteneur web, par exemple javax.servlet.http.HttpServletRequest, en utilisant l'annotation @Context décrite dans la spécification JAX-RS.

Procédure

  1. Configurez l'environnement de développement.
    1. Avant de développer des applications JAX-RS, vous devez configurer l'environnement de déploiement en ajoutant les bibliothèques JAX-RS dans le chemin d'accès aux classes.
  2. Définissez les ressources dans les applications Web JAX-RS.
    1. Les ressources sont les principaux blocs fonctionnels d'un service RESTful. Les ressources peuvent contenir des données statiques ou mises à jour dynamiquement. Un manuel, une commande et une collection d'utilisateurs sont des exemples de ressources d'une application de librairie en ligne. En identifiant les ressources dans l'application, vous améliorez l'utilité du service et facilitez son développement.
  3. Configurez l'application JAX-RS.

    Vous pouvez configurer les applications JAX-RS de plusieurs façons, selon vos besoins. Pour tirer parti de la fonctionnalité Java™ EE (Java Platform, Enterprise Edition) 6, vous pouvez utiliser les fonctions d'analyse des annotations. L'analyse des annotations permet d'ignorer une sous-classe JAX-RS javax.ws.rs.core.Application ou de disposer d'une sous-classe javax.ws.rs.core.Application à définition minimale. Sinon, vous pouvez aussi spécifier le servlet ou le filtre IBM® JAX-RS si vous préférez utiliser la fonction qu'ils contiennent.

    En employant l'une des méthodes de configuration JAX-RS version 1.1, vous pouvez ignorer une sous-classe javax.ws.rs.core.Application dans votre application ou disposer d'une sous-classe javax.ws.rs.core.Application qui renvoie un ensemble vide de classes pour informer l'environnement d'exécution JAX-RS qu'il doit détecter et utiliser toutes les classes JAX-RS de l'application. Cette méthode vous évite de devoir ajouter manuellement chaque classe JAX-RS appropriée à une sous-classe javax.ws.rs.core.Application lors du développement de l'application.

    En indiquant le servlet ou le filtre IBM JAX-RS spécifique, vous pouvez bénéficier d'un comportement IBM JAX-RS particulier et le garantir. Par exemple, l'utilisation du filtre IBM JAX-RS peut faciliter le développement d'une application Web faisant appel à un mélange de ressources JAX-RS et de fichiers JSP (JavaServer Pages) avec les mêmes modèles d'URL.

    Bien qu'une méthode de configuration JAX-RS version 1.1 prenne en charge le fichier web.xml facultatif, ce dernier est obligatoire pour indiquer des contraintes ou des rôles de sécurité ou pour tirer parti de fonctions activées avec un fichier web.xml.

    Choisissez l'une des trois méthodes suivantes pour configurer votre application JAX-RS :

    • Configuration d'applications JAX-RS selon les méthodes JAX-RS 1.1

      Utilisez cette méthode pour employer les fonctions d'analyse des annotations ou les méthodes de configuration JAX-RS 1.1. Vous pouvez utiliser les fonctions d'analyse des annotations pour promouvoir la portabilité de l'application, réduire la quantité de code de configuration ou modifier l'application dynamiquement sans changer son code.

    • Configurez le fichier web.xml pour les servlets JAX-RS

      Utilisez cette méthode pour indiquer des fonctions activées à l'aide des paramètres d'initialisation du servlet, afin d'obtenir un changement de comportement et le servlet IBM JAX-RS. Lorsque vous utilisez des servlets, vous pouvez définir un chemin de servlet dans le fichier web.xml qui est ajouté à l'URL de base.

    • Configuration du fichier web.xml pour les filtres JAX-RS

      Utilisez cette méthode pour employer le filtre lorsque vous avez des fichiers JSP, d'autres servlets et filtres ainsi que des ressources JAX-RS incluant plusieurs masques d'URL. Vous pouvez configurer le fichier web.xml pour définir les filtres qui indiquent les adresses URL sur lesquelles ils peuvent être appelés.

  4. Ajoutez des zones et des paramètres de contexte pour obtenir des informations sur les demandes. Vous pouvez obtenir des informations sur les demandes en utilisant des objets HttpHeaders, UriInfo, Request ou SecurityContext.
  5. Assemblez les applications Web JAX-RS.
    1. Après avoir développé les fichiers de classe Java de l'application Web JAX-RS et modifié le fichier web.xml pour activer le servlet JAX-RS, vous pouvez assembler l'application. Assemblez-la dans un package WAR (archive WAR). Vous pouvez assembler le package WAR dans un package EAR (archive d'entreprise), le cas échéant.
  6. Déployez les applications Web JAX-RS.
    1. Après avoir assemblé l'application Web JAX-RS, vous devez déployer le package WAR (fichier d'archive Web) ou EAR (fichier d'archive d'entreprise) sur le serveur d'applications.

Résultats

Vous avez implémenté des objets de contexte pour obtenir plus d'informations sur les demandes envoyées à l'application Web JAX-RS.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_contextobjects
Nom du fichier : twbs_jaxrs_contextobjects.html