## javax.ws.rs.core
Interface UriInfo

All Known Subinterfaces:
  ExtendedUriInfo

    public interface UriInfo

An injectable interface that provides access to application and request URI information. Relative URIs are relative to the base URI of the application, see `getBaseUri()`.

All methods throw `java.lang.IllegalStateException` if called outside the scope of a request (e.g. from a provider constructor).

See Also:
  `Context`

Method Summary
`java.net.URI` | `getAbsolutePath()` Get the absolute path of the request.
`UriBuilder` | `getAbsolutePathBuilder()` Get the absolute path of the request in the form of a UriBuilder.
`java.net.URI` | `getBaseUri()` Get the base URI of the application.
`UriBuilder` | `getBaseUriBuilder()` Get the base URI of the application in the form of a UriBuilder.
`java.util.List<java.lang.Object>` | `getMatchedResources()` Get a read-only list of the currently matched resource class instances.
`java.util.List<java.lang.String>` | `getMatchedURIs()` Get a read-only list of URIs for matched resources.
`java.util.List<java.lang.String>` | `getMatchedURIs(boolean decode)` Get a read-only list of URIs for matched resources.
`java.lang.String` | `getPath()` Get the path of the current request relative to the base URI as a string.
`java.lang.String` | `getPath(boolean decode)` Get the path of the current request relative to the base URI as a string.
`MultivaluedMap<java.lang.String,java.lang.String>` | `getPathParameters()` Get the values of any embedded URI template parameters.
`MultivaluedMap<java.lang.String,java.lang.String>` | `getPathParameters(boolean decode)` Get the values of any embedded URI template parameters.
`java.util.List<PathSegment>` | `getPathSegments()` Get the path of the current request relative to the base URI as a list of `PathSegment`.
`java.util.List<PathSegment>` | `getPathSegments(boolean decode)` Get the path of the current request relative to the base URI as a list of `PathSegment`.
`MultivaluedMap<java.lang.String,java.lang.String>` | `getQueryParameters()` Get the URI query parameters of the current request.
`MultivaluedMap<java.lang.String,java.lang.String>` | `getQueryParameters(boolean decode)` Get the URI query parameters of the current request.
`java.net.URI` | `getRequestUri()` Get the absolute request URI including any query parameters.
`UriBuilder` | `getRequestUriBuilder()` Get the absolute request URI in the form of a UriBuilder.

Method Detail

### getPath

    java.lang.String getPath()

  Get the path of the current request relative to the base URI as a string. All sequences of escaped octets are decoded, equivalent to `getPath(true)`.

  Returns:
    the relative URI path
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request

### getPath

    java.lang.String getPath(boolean decode)

  Get the path of the current request relative to the base URI as a string.

  Parameters:
    `decode` - controls whether sequences of escaped octets are decoded (true) or not (false).
  Returns:
    the relative URI path
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request

### getPathSegments

    java.util.List<PathSegment> getPathSegments()

  Get the path of the current request relative to the base URI as a list of `PathSegment`. This method is useful when the path needs to be parsed, particularly when matrix parameters may be present in the path. All sequences of escaped octets in path segments and matrix parameter values are decoded, equivalent to `getPathSegments(true)`.

  Returns:
    an unmodifiable list of `PathSegment`. The matrix parameter map of each path segment is also unmodifiable.
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request
  See Also:
    `PathSegment`, Matrix URIs

### getPathSegments

    java.util.List<PathSegment> getPathSegments(boolean decode)

  Get the path of the current request relative to the base URI as a list of `PathSegment`. This method is useful when the path needs to be parsed, particularly when matrix parameters may be present in the path.

  Parameters:
    `decode` - controls whether sequences of escaped octets in path segments and matrix parameter values are decoded (true) or not (false).
  Returns:
    an unmodifiable list of `PathSegment`. The matrix parameter map of each path segment is also unmodifiable.
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request
  See Also:
    `PathSegment`, Matrix URIs

### getRequestUri

    java.net.URI getRequestUri()

  Get the absolute request URI including any query parameters.

  Returns:
    the absolute request URI
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request

### getRequestUriBuilder

    UriBuilder getRequestUriBuilder()

  Get the absolute request URI in the form of a UriBuilder.

  Returns:
    a UriBuilder initialized with the absolute request URI
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request

### getAbsolutePath

    java.net.URI getAbsolutePath()

  Get the absolute path of the request. This includes everything preceding the path (host, port etc) but excludes query parameters. This is a shortcut for `uriInfo.getBase().resolve(uriInfo.getPath()).`

  Returns:
    the absolute path of the request
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request

### getAbsolutePathBuilder

    UriBuilder getAbsolutePathBuilder()

  Get the absolute path of the request in the form of a UriBuilder. This includes everything preceding the path (host, port etc) but excludes query parameters.

  Returns:
    a UriBuilder initialized with the absolute path of the request
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request

### getBaseUri

    java.net.URI getBaseUri()

  Get the base URI of the application. URIs of root resource classes are all relative to this base URI.

  Returns:
    the base URI of the application

### getBaseUriBuilder

    UriBuilder getBaseUriBuilder()

  Get the base URI of the application in the form of a UriBuilder.

  Returns:
    a UriBuilder initialized with the base URI of the application.

### getPathParameters

    MultivaluedMap<java.lang.String,java.lang.String> getPathParameters()

  Get the values of any embedded URI template parameters. All sequences of escaped octets are decoded, equivalent to `getPathParameters(true)`.

  Returns:
    an unmodifiable map of parameter names and values
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request
  See Also:
    `Path`, `PathParam`

### getPathParameters

    MultivaluedMap<java.lang.String,java.lang.String> getPathParameters(boolean decode)

  Get the values of any embedded URI template parameters.

  Parameters:
    `decode` - controls whether sequences of escaped octets are decoded (true) or not (false).
  Returns:
    an unmodifiable map of parameter names and values
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request
  See Also:
    `Path`, `PathParam`

### getQueryParameters

    MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters()

  Get the URI query parameters of the current request. The map keys are the names of the query parameters with any escaped characters decoded. All sequences of escaped octets in parameter values are decoded, equivalent to `getQueryParameters(true)`.

  Returns:
    an unmodifiable map of query parameter names and values
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request

### getQueryParameters

    MultivaluedMap<java.lang.String,java.lang.String> getQueryParameters(boolean decode)

  Get the URI query parameters of the current request. The map keys are the names of the query parameters with any escaped characters decoded.

  Parameters:
    `decode` - controls whether sequences of escaped octets in parameter values are decoded (true) or not (false).
  Returns:
    an unmodifiable map of query parameter names and values
  Throws:
    `java.lang.IllegalStateException` - if called outside the scope of a request

### getMatchedURIs

    java.util.List<java.lang.String> getMatchedURIs()

  Get a read-only list of URIs for matched resources. Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. All sequences of escaped octets are decoded, equivalent to `getMatchedURIs(true)`. Entries do not include query parameters but do include matrix parameters if present in the request URI. Entries are ordered in reverse request URI matching order, with the current resource URI first. E.g. given the following resource classes:

      @Path("foo")
      public class FooResource {
        @GET
        public String getFoo() {...}

        @Path("bar")
        public BarResource getBarResource() {...}
      }

      public class BarResource {
        @GET
        public String getBar() {...}
      }

  The values returned by this method based on request uri and where the method is called from are:

  Request | Called from | Value(s)
  --- | --- | ---
  GET /foo | FooResource.getFoo | foo
  GET /foo/bar | FooResource.getBarResource | foo/bar, foo
  GET /foo/bar | BarResource.getBar | foo/bar, foo

  Returns:
    a read-only list of URI paths for matched resources.

### getMatchedURIs

    java.util.List<java.lang.String> getMatchedURIs(boolean decode)

  Get a read-only list of URIs for matched resources. Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. Entries do not include query parameters but do include matrix parameters if present in the request URI. Entries are ordered in reverse request URI matching order, with the current resource URI first. See `getMatchedURIs()` for an example.

  Parameters:
    `decode` - controls whether sequences of escaped octets are decoded (true) or not (false).
  Returns:
    a read-only list of URI paths for matched resources.

### getMatchedResources

    java.util.List<java.lang.Object> getMatchedResources()

  Get a read-only list of the currently matched resource class instances. Each entry is a resource class instance that matched the request URI either directly or via a sub-resource method or a sub-resource locator. Entries are ordered according to reverse request URI matching order, with the current resource first. E.g. given the following resource classes:

      @Path("foo")
      public class FooResource {
        @GET
        public String getFoo() {...}

        @Path("bar")
        public BarResource getBarResource() {...}
      }

      public class BarResource {
        @GET
        public String getBar() {...}
      }

  The values returned by this method based on request uri and where the method is called from are:

  Request | Called from | Value(s)
  --- | --- | ---
  GET /foo | FooResource.getFoo | FooResource
  GET /foo/bar | FooResource.getBarResource | FooResource
  GET /foo/bar | BarResource.getBar | BarResource, FooResource

  Returns:
    a read-only list of matched resource class instances.

Copyright © 2017 Oracle Corporation. All Rights Reserved.