Obtention des informations sur les identificateurs URI en utilisant des objets UriInfo

En utilisant Java™ API for RESTful Web Services (JAX-RS), vous pouvez utiliser l'objet UriInfo pour accéder aux en-têtes de demande. L'objet UriInfo fournit des méthodes qui permettent de rechercher ou de créer les informations d'identificateur URI d'une demande.

Pourquoi et quand exécuter cette tâche

Si vous utilisez un objet UriInfo injecté par l'environnement d'exécution JAX-RS, les informations d'identificateur URI (Uniform Resource Identifier) relatif et absolu sont connues et disponibles pour la modification. L'annotation @javax.ws.rs.core.Context indique qu'un objet de contexte est injecté. L'interface javax.ws.rs.core.UriInfo est l'interface de l'objet à injecter. Vous pouvez utiliser l'objet UriInfo pour créer les URL absolue et relative en utilisant la classe UriBuilder.

Procédure

Résultats

La méthode de ressource peut utiliser l'identificateur URI et générer les informations d'URI en utilisant l'objet UriInfo

Exemple

Dans l'exemple suivant, une liste de ressources de manuels est disponibles à l'URL http://<hostname>:<port>/<context root>/<servlet path>/books. Supposons que vous nécessitiez une autre ressource pour référencer la ressource books. Au lieu de coder en dur l'URL dans l'application, utilisez l'objet UriInfo pour retourner une classe UriBuilder qui génère dynamiquement l'identificateur URI dans les ressources dans l'application.
import   javax.ws.rs.GET; 
import   javax.ws.rs.Path; 
import   javax.ws.rs.Produces; 
import   javax.ws.rs.core.Context; 
import   javax.ws.rs.core.UriInfo; 
import   javax.ws.rs.core.MediaType; 
  
@Path ( "/books" ) 
public   class  BookListResource   { 
  
     @GET
     @Produces(MediaType.TEXT_PLAIN)
     public   String  getBookList()   {
        return "a list of books";
      }
} 
import java.util.List; 
import java.util.Locale; 
  
import   javax.ws.rs.GET; 
import   javax.ws.rs.Path; 
import   javax.ws.rs.Produces; 
import   javax.ws.rs.core.Context; 
import   javax.ws.rs.core.UriInfo; 
import   javax.ws.rs.core.MediaType; 
  
@Path ( "/allitems" ) 
public   class  AllItemsListResource   { 
  
     @GET
     @Produces(MediaType.TEXT_PLAIN)
     public   String   getLocationOfAllItems(@Context UriInfo uriInfo)   { 
        URI bookListURI = uriInfo.getBaseUriBuilder().path(BookListResource.class).build();
        return Response.ok("The URI to the book list is: " + bookListURI..toASCIIString()).build();
      }
}

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_uri
Nom du fichier : twbs_jaxrs_contextobjects_uri.html