Obtendo Informações Sobre URIs Usando Objetos UriInfo
Usando a API Java™ para Serviços da Web RESTful (JAX-RS), é possível usar o objeto UriInfo para acessar cabeçalhos de pedido. O objeto UriInfo fornece métodos para permitir localizar ou construir informações de URI de um pedido.
Sobre Esta Tarefa
Usando um objeto UriInfo injetado pelo ambiente de tempo de execução JAX-RS, as informações do identificador uniforme de recursos (URI) relativo e absoluto são conhecidas e disponibilizadas para modificação. A anotação @javax.ws.rs.core.Context indica que um objeto de contexto é introduzido. A interface javax.ws.rs.core.UriInfo é a interface do objeto que deseja introduzir. É possível usar o objeto UriInfo para criar URLs absolutas e relativas usando a classe UriBuilder.
Procedimento
Resultados
O método de recurso pode usar o URI e, em seguida, criar as informações de URI usando o objeto UriInfo.
Exemplo
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();
}
}