Class RequestPredicates

java.lang.Object
org.springframework.web.servlet.function.RequestPredicates

public abstract class RequestPredicates extends Object
Implementations of RequestPredicate that implement various useful request matching operations, such as matching based on path, HTTP method, etc.
Since:
5.2
Author:
Arjen Poutsma, Sam Brannen
  • Constructor Details

    • RequestPredicates

      public RequestPredicates()
  • Method Details

    • all

      public static RequestPredicate all()
      Return a RequestPredicate that always matches.
      Returns:
      a predicate that always matches
    • method

      public static RequestPredicate method(HttpMethod httpMethod)
      Return a RequestPredicate that matches if the request's HTTP method is equal to the given method.
      Parameters:
      httpMethod - the HTTP method to match against
      Returns:
      a predicate that tests against the given HTTP method
    • methods

      public static RequestPredicate methods(HttpMethod... httpMethods)
      Return a RequestPredicate that matches if the request's HTTP method is equal to one the of the given methods.
      Parameters:
      httpMethods - the HTTP methods to match against
      Returns:
      a predicate that tests against the given HTTP methods
    • path

      public static RequestPredicate path(String pattern)
      Return a RequestPredicate that tests the request path against the given path pattern.
      Parameters:
      pattern - the pattern to match to
      Returns:
      a predicate that tests against the given path pattern
      See Also:
    • pathPredicates

      public static Function<String, RequestPredicate> pathPredicates(PathPatternParser patternParser)
      Return a function that creates new path-matching RequestPredicates from pattern Strings using the given PathPatternParser.

      This method can be used to specify a non-default, customized PathPatternParser when resolving path patterns.

      Parameters:
      patternParser - the parser used to parse patterns given to the returned function
      Returns:
      a function that resolves a pattern String into a path-matching RequestPredicates instance
    • headers

      public static RequestPredicate headers(Predicate<ServerRequest.Headers> headersPredicate)
      Return a RequestPredicate that tests the request's headers against the given headers predicate.
      Parameters:
      headersPredicate - a predicate that tests against the request headers
      Returns:
      a predicate that tests against the given header predicate
    • contentType

      public static RequestPredicate contentType(MediaType... mediaTypes)
      Return a RequestPredicate that tests if the request's content type is included by any of the given media types.
      Parameters:
      mediaTypes - the media types to match the request's content type against
      Returns:
      a predicate that tests the request's content type against the given media types
    • accept

      public static RequestPredicate accept(MediaType... mediaTypes)
      Return a RequestPredicate that tests if the request's accept header is compatible with any of the given media types.
      Parameters:
      mediaTypes - the media types to match the request's accept header against
      Returns:
      a predicate that tests the request's accept header against the given media types
    • version

      public static RequestPredicate version(Object version)
      RequestPredicate to match to the request API version extracted from and parsed with the configured ApiVersionStrategy.

      The version may be one of the following:

      • Fixed version ("1.2") -- match this version only.
      • Baseline version ("1.2+") -- match this and subsequent versions.

      A baseline version allows n endpoint route to continue to work in subsequent versions if it remains compatible until an incompatible change eventually leads to the creation of a new route.

      Parameters:
      version - the version to use
      Returns:
      the created predicate instance
      Since:
      7.0
    • GET

      public static RequestPredicate GET(String pattern)
      Return a RequestPredicate that matches if request's HTTP method is GET and the given pattern matches against the request path.
      Parameters:
      pattern - the path pattern to match against
      Returns:
      a predicate that matches if the request method is GET and if the given pattern matches against the request path
      See Also:
    • HEAD

      public static RequestPredicate HEAD(String pattern)
      Return a RequestPredicate that matches if request's HTTP method is HEAD and the given pattern matches against the request path.
      Parameters:
      pattern - the path pattern to match against
      Returns:
      a predicate that matches if the request method is HEAD and if the given pattern matches against the request path
      See Also:
    • POST

      public static RequestPredicate POST(String pattern)
      Return a RequestPredicate that matches if request's HTTP method is POST and the given pattern matches against the request path.
      Parameters:
      pattern - the path pattern to match against
      Returns:
      a predicate that matches if the request method is POST and if the given pattern matches against the request path
      See Also:
    • PUT

      public static RequestPredicate PUT(String pattern)
      Return a RequestPredicate that matches if request's HTTP method is PUT and the given pattern matches against the request path.
      Parameters:
      pattern - the path pattern to match against
      Returns:
      a predicate that matches if the request method is PUT and if the given pattern matches against the request path
      See Also:
    • PATCH

      public static RequestPredicate PATCH(String pattern)
      Return a RequestPredicate that matches if request's HTTP method is PATCH and the given pattern matches against the request path.
      Parameters:
      pattern - the path pattern to match against
      Returns:
      a predicate that matches if the request method is PATCH and if the given pattern matches against the request path
      See Also:
    • DELETE

      public static RequestPredicate DELETE(String pattern)
      Return a RequestPredicate that matches if request's HTTP method is DELETE and the given pattern matches against the request path.
      Parameters:
      pattern - the path pattern to match against
      Returns:
      a predicate that matches if the request method is DELETE and if the given pattern matches against the request path
      See Also:
    • OPTIONS

      public static RequestPredicate OPTIONS(String pattern)
      Return a RequestPredicate that matches if request's HTTP method is OPTIONS and the given pattern matches against the request path.
      Parameters:
      pattern - the path pattern to match against
      Returns:
      a predicate that matches if the request method is OPTIONS and if the given pattern matches against the request path
      See Also:
    • pathExtension

      @Deprecated(since="7.0", forRemoval=true) public static RequestPredicate pathExtension(String extension)
      Deprecated, for removal: This API element is subject to removal in a future version.
      without replacement to discourage use of path extensions for request mapping and for content negotiation (with similar deprecations and removals already applied to annotated controllers). For further context, please read issue #24179
      Return a RequestPredicate that matches if the request's path has the given extension.
      Parameters:
      extension - the path extension to match against, ignoring case
      Returns:
      a predicate that matches if the request's path has the given file extension
    • pathExtension

      @Deprecated(since="7.0", forRemoval=true) public static RequestPredicate pathExtension(Predicate<String> extensionPredicate)
      Deprecated, for removal: This API element is subject to removal in a future version.
      without replacement to discourage use of path extensions for request mapping and for content negotiation (with similar deprecations and removals already applied to annotated controllers). For further context, please read issue #24179
      Return a RequestPredicate that matches if the request's path matches the given predicate.
      Parameters:
      extensionPredicate - the predicate to test against the request path extension
      Returns:
      a predicate that matches if the given predicate matches against the request's path file extension
    • param

      public static RequestPredicate param(String name, String value)
      Return a RequestPredicate that matches if the request's parameter of the given name has the given value.
      Parameters:
      name - the name of the parameter to test against
      value - the value of the parameter to test against
      Returns:
      a predicate that matches if the parameter has the given value
      See Also:
    • param

      public static RequestPredicate param(String name, Predicate<String> predicate)
      Return a RequestPredicate that tests the request's parameter of the given name against the given predicate.
      Parameters:
      name - the name of the parameter to test against
      predicate - the predicate to test against the parameter value
      Returns:
      a predicate that matches the given predicate against the parameter of the given name
      See Also: