Class HttpPredicateRouterBuilder
- java.lang.Object
-
- io.servicetalk.http.router.predicate.HttpPredicateRouterBuilder
-
- All Implemented Interfaces:
RouteStarter
public final class HttpPredicateRouterBuilder extends java.lang.Object implements RouteStarter
Builds anStreamingHttpService
which routes requests to a number of otherStreamingHttpService
s based on user specified criteria.eg.
final StreamingHttpService<HttpChunk, HttpChunk> router = new HttpPredicateRouterBuilder<HttpChunk, HttpChunk>() .whenMethod(GET).andPathStartsWith("/a/").thenRouteTo(serviceA) .whenMethod(GET).andPathStartsWith("/b/").thenRouteTo(serviceB) .whenMethod(POST).thenRouteTo(serviceC) .buildStreaming();
If no routes match, a default service is used, which returns a 404 response.
-
-
Constructor Summary
Constructors Constructor Description HttpPredicateRouterBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StreamingHttpService
buildStreaming()
Builds theStreamingHttpService
that performs the configured routing.RouteContinuation
when(java.util.function.BiPredicate<ConnectionContext,StreamingHttpRequest> predicate)
Begin a route that matchesStreamingHttpRequest
andConnectionContext
with a user-specifiedpredicate
.RouteContinuation
when(java.util.function.Predicate<StreamingHttpRequest> predicate)
Begin a route that matchesStreamingHttpRequest
s with a user-specifiedpredicate
.CookieMatcher
whenCookie(java.lang.String name)
StringMultiValueMatcher
whenHeader(java.lang.CharSequence name)
Begin a route with aStringMultiValueMatcher
that matches against the value(s) of thename
headers.RouteContinuation
whenIsNotSsl()
Begin a route that matches requests that are not over SSL/TLS.RouteContinuation
whenIsSsl()
Begin a route that matches requests that are over SSL/TLS.RouteContinuation
whenMethod(HttpRequestMethod method)
Begin a route that matches requests where theHttpRequestMethod
ismethod
.RouteContinuation
whenMethodIsOneOf(HttpRequestMethod... methods)
Begin a route that matches requests where theHttpRequestMethod
is one of themethods
.RouteContinuation
whenPathEquals(java.lang.String path)
Begin a route that matches requests where the path is equal topath
.RouteContinuation
whenPathIsOneOf(java.lang.String... paths)
Begin a route that matches requests where the path is equal to any of the specifiedpath
s.RouteContinuation
whenPathMatches(java.lang.String pathRegex)
Begin a route that matches requests where the path matches the regexpathRegex
.RouteContinuation
whenPathMatches(java.util.regex.Pattern pathRegex)
Begin a route that matches requests where the path matches the regexpathRegex
.RouteContinuation
whenPathStartsWith(java.lang.String pathPrefix)
Begin a route that matches requests where the path starts withpathPrefix
.StringMultiValueMatcher
whenQueryParam(java.lang.String name)
Begin a route with aStringMultiValueMatcher
that matches against the value(s) of the request parametername
.
-
-
-
Method Detail
-
whenMethod
public RouteContinuation whenMethod(HttpRequestMethod method)
Description copied from interface:RouteStarter
Begin a route that matches requests where theHttpRequestMethod
ismethod
.- Specified by:
whenMethod
in interfaceRouteStarter
- Parameters:
method
- the method to match.- Returns:
RouteContinuation
for the next steps of building a route.
-
whenMethodIsOneOf
public RouteContinuation whenMethodIsOneOf(HttpRequestMethod... methods)
Description copied from interface:RouteStarter
Begin a route that matches requests where theHttpRequestMethod
is one of themethods
.- Specified by:
whenMethodIsOneOf
in interfaceRouteStarter
- Parameters:
methods
- the methods to match.- Returns:
RouteContinuation
for the next steps of building a route.
-
whenPathEquals
public RouteContinuation whenPathEquals(java.lang.String path)
Description copied from interface:RouteStarter
Begin a route that matches requests where the path is equal topath
.- Specified by:
whenPathEquals
in interfaceRouteStarter
- Parameters:
path
- the path to match.- Returns:
RouteContinuation
for the next steps of building a route.
-
whenPathIsOneOf
public RouteContinuation whenPathIsOneOf(java.lang.String... paths)
Description copied from interface:RouteStarter
Begin a route that matches requests where the path is equal to any of the specifiedpath
s.- Specified by:
whenPathIsOneOf
in interfaceRouteStarter
- Parameters:
paths
- the paths to match.- Returns:
RouteContinuation
for the next steps of building a route.
-
whenPathStartsWith
public RouteContinuation whenPathStartsWith(java.lang.String pathPrefix)
Description copied from interface:RouteStarter
Begin a route that matches requests where the path starts withpathPrefix
.- Specified by:
whenPathStartsWith
in interfaceRouteStarter
- Parameters:
pathPrefix
- the path prefix to match.- Returns:
RouteContinuation
for the next steps of building a route.
-
whenPathMatches
public RouteContinuation whenPathMatches(java.lang.String pathRegex)
Description copied from interface:RouteStarter
Begin a route that matches requests where the path matches the regexpathRegex
.- Specified by:
whenPathMatches
in interfaceRouteStarter
- Parameters:
pathRegex
- the regex to match against the request path.- Returns:
RouteContinuation
for the next steps of building a route.
-
whenPathMatches
public RouteContinuation whenPathMatches(java.util.regex.Pattern pathRegex)
Description copied from interface:RouteStarter
Begin a route that matches requests where the path matches the regexpathRegex
.- Specified by:
whenPathMatches
in interfaceRouteStarter
- Parameters:
pathRegex
- the regex to match against the request path.- Returns:
RouteContinuation
for the next steps of building a route.
-
whenQueryParam
public StringMultiValueMatcher whenQueryParam(java.lang.String name)
Description copied from interface:RouteStarter
Begin a route with aStringMultiValueMatcher
that matches against the value(s) of the request parametername
.- Specified by:
whenQueryParam
in interfaceRouteStarter
- Parameters:
name
- the request parameter name that must be present in the request in order to continue evaluation of this route.- Returns:
StringMultiValueMatcher
for the next steps of building a route.
-
whenHeader
public StringMultiValueMatcher whenHeader(java.lang.CharSequence name)
Description copied from interface:RouteStarter
Begin a route with aStringMultiValueMatcher
that matches against the value(s) of thename
headers.- Specified by:
whenHeader
in interfaceRouteStarter
- Parameters:
name
- The header name that must be present in the request in order to continue evaluation of this route.- Returns:
StringMultiValueMatcher
for the next steps of building a route.
-
whenCookie
public CookieMatcher whenCookie(java.lang.String name)
Description copied from interface:RouteStarter
- Specified by:
whenCookie
in interfaceRouteStarter
- Parameters:
name
- the cookie name that must be present in the request in order to continue evaluation of this route.- Returns:
CookieMatcher
for the next steps of building a route.
-
whenIsSsl
public RouteContinuation whenIsSsl()
Description copied from interface:RouteStarter
Begin a route that matches requests that are over SSL/TLS.- Specified by:
whenIsSsl
in interfaceRouteStarter
- Returns:
RouteContinuation
for the next steps of building a route.
-
whenIsNotSsl
public RouteContinuation whenIsNotSsl()
Description copied from interface:RouteStarter
Begin a route that matches requests that are not over SSL/TLS.- Specified by:
whenIsNotSsl
in interfaceRouteStarter
- Returns:
RouteContinuation
for the next steps of building a route.
-
when
public RouteContinuation when(java.util.function.Predicate<StreamingHttpRequest> predicate)
Description copied from interface:RouteStarter
Begin a route that matchesStreamingHttpRequest
s with a user-specifiedpredicate
.- Specified by:
when
in interfaceRouteStarter
- Parameters:
predicate
- the predicate to evaluate against requests.- Returns:
RouteContinuation
for the next steps of building a route.
-
when
public RouteContinuation when(java.util.function.BiPredicate<ConnectionContext,StreamingHttpRequest> predicate)
Description copied from interface:RouteStarter
Begin a route that matchesStreamingHttpRequest
andConnectionContext
with a user-specifiedpredicate
.- Specified by:
when
in interfaceRouteStarter
- Parameters:
predicate
- the predicate to evaluate against the request and connection context.- Returns:
RouteContinuation
for the next steps of building a route.
-
buildStreaming
public StreamingHttpService buildStreaming()
Description copied from interface:RouteStarter
Builds theStreamingHttpService
that performs the configured routing.- Specified by:
buildStreaming
in interfaceRouteStarter
- Returns:
- the router
StreamingHttpService
.
-
-