Obtención de información sobre los URI que utilizan objetos UriInfo
Mediante Java™ API for RESTful Web Services (JAX-RS), puede utilizar el objeto UriInfo para acceder a las cabeceras de solicitud. El objeto UriInfo proporciona métodos para permitirle buscar o crear información del URI de una solicitud.
Acerca de esta tarea
Mediante un objeto UriInfo inyectado a través del entorno de ejecución de JAX-RS, conseguirá la información relacionada y absoluta sobre el identificador de recursos uniforme (URI) y que está disponible para modificación. La anotación @javax.ws.rs.core.Context indica que se ha inyectado un objeto de contexto. La interfaz javax.ws.rs.core.UriInfo es la interfaz del objeto que desee inyectar. Puede utilizar el objeto UriInfo para crear URL absolutos y relativos mediante la clase UriBuilder.
Procedimiento
Resultados
El método de recursos puede utilizar el URI y, a continuación, crear información del URI utilizando el objeto UriInfo
Ejemplo
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();
}
}