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
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();
}
}