public abstract class PathDirectives extends ParameterDirectives
Just nest path() directives with the required types, ending in pathEnd() if you want to fail further paths.
Constructor and Description |
---|
PathDirectives() |
Modifier and Type | Method and Description |
---|---|
Route |
ignoreTrailingSlash(java.util.function.Supplier<Route> inner)
Tries to match the inner route and if it fails with an empty rejection, it tries it again
adding (or removing) the trailing slash on the given path.
|
Route |
path(java.util.function.Function<java.lang.String,Route> inner) |
Route |
path(PathMatcher0 p,
java.util.function.Supplier<Route> inner)
Applies the given
PathMatcher0 to the remaining unmatched path after consuming a leading slash. |
<T> Route |
path(PathMatcher1<T> p,
java.util.function.Function<T,Route> inner) |
<T1,T2> Route |
path(PathMatcher2<T1,T2> p,
java.util.function.BiFunction<T1,T2,Route> inner) |
Route |
path(java.lang.String segment,
java.util.function.Supplier<Route> inner)
Matches a prefix to the remaining unmatched path after consuming a leading slash.
|
<T> Route |
path(Unmarshaller<java.lang.String,T> t,
java.util.function.Function<T,Route> inner)
Consumes a leading slash and extracts the next path segment, unmarshalling it and passing the result to the inner function,
expecting the full path to have been consumed then.
|
Route |
pathEnd(java.util.function.Supplier<Route> inner)
Rejects the request if the unmatchedPath of the
pekko.http.javadsl.server.RequestContext is non-empty,
or said differently: only passes on the request to its inner route if the request path
has been matched completely. |
Route |
pathEndOrSingleSlash(java.util.function.Supplier<Route> inner)
Only passes on the request to its inner route if the request path has been matched
completely or only consists of exactly one remaining slash.
|
Route |
pathPrefix(java.util.function.Function<java.lang.String,Route> inner) |
Route |
pathPrefix(PathMatcher0 p,
java.util.function.Supplier<Route> inner)
Applies the given
PathMatcher0 to the remaining unmatched path after consuming a leading slash. |
<T> Route |
pathPrefix(PathMatcher1<T> p,
java.util.function.Function<T,Route> inner) |
<T1,T2> Route |
pathPrefix(PathMatcher2<T1,T2> p,
java.util.function.BiFunction<T1,T2,Route> inner) |
Route |
pathPrefix(java.lang.String segment,
java.util.function.Supplier<Route> inner)
Matches a prefix to the remaining unmatched path after consuming a leading slash.
|
<T> Route |
pathPrefix(Unmarshaller<java.lang.String,T> t,
java.util.function.Function<T,Route> inner)
Consumes a leading slash and extracts the next path segment, unmarshalling it and passing the result to the inner function.
|
Route |
pathPrefixTest(PathMatcher0 pm,
java.util.function.Supplier<Route> inner) |
<T1> Route |
pathPrefixTest(PathMatcher1<T1> pm,
java.util.function.Function<T1,Route> inner) |
<T1,T2> Route |
pathPrefixTest(PathMatcher2<T1,T2> pm,
java.util.function.BiFunction<T1,T2,Route> inner) |
Route |
pathPrefixTest(java.lang.String segment,
java.util.function.Supplier<Route> inner)
Checks whether the unmatchedPath of the
pekko.http.javadsl.server.RequestContext has a prefix matched by the
given PathMatcher. |
Route |
pathSingleSlash(java.util.function.Supplier<Route> inner)
Only passes on the request to its inner route if the request path
consists of exactly one remaining slash.
|
Route |
pathSuffix(PathMatcher0 pm,
java.util.function.Supplier<Route> inner) |
<T1> Route |
pathSuffix(PathMatcher1<T1> pm,
java.util.function.Function<T1,Route> inner) |
<T1,T2> Route |
pathSuffix(PathMatcher2<T1,T2> pm,
java.util.function.BiFunction<T1,T2,Route> inner) |
Route |
pathSuffix(java.lang.String segment,
java.util.function.Supplier<Route> inner)
Applies the given
pekko.http.scaladsl.server.PathMatcher to a suffix of the remaining unmatchedPath of the pekko.http.javadsl.server.RequestContext . |
Route |
pathSuffixTest(PathMatcher0 pm,
java.util.function.Supplier<Route> inner) |
<T1> Route |
pathSuffixTest(PathMatcher1<T1> pm,
java.util.function.Function<T1,Route> inner) |
<T1,T2> Route |
pathSuffixTest(PathMatcher2<T1,T2> pm,
java.util.function.BiFunction<T1,T2,Route> inner) |
Route |
pathSuffixTest(java.lang.String segment,
java.util.function.Supplier<Route> inner)
Checks whether the unmatchedPath of the
pekko.http.javadsl.server.RequestContext has a suffix matched by the
given PathMatcher. |
Route |
rawPathPrefix(PathMatcher0 pm,
java.util.function.Supplier<Route> inner) |
<T1> Route |
rawPathPrefix(PathMatcher1<T1> pm,
java.util.function.Function<T1,Route> inner) |
<T1,T2> Route |
rawPathPrefix(PathMatcher2<T1,T2> pm,
java.util.function.BiFunction<T1,T2,Route> inner) |
Route |
rawPathPrefix(java.lang.String segment,
java.util.function.Supplier<Route> inner)
Applies the given matcher directly to a prefix of the unmatched path of the
pekko.http.javadsl.server.RequestContext (i.e. without implicitly consuming a leading slash). |
Route |
rawPathPrefixTest(PathMatcher0 pm,
java.util.function.Supplier<Route> inner) |
<T1> Route |
rawPathPrefixTest(PathMatcher1<T1> pm,
java.util.function.Function<T1,Route> inner) |
<T1,T2> Route |
rawPathPrefixTest(PathMatcher2<T1,T2> pm,
java.util.function.BiFunction<T1,T2,Route> inner) |
Route |
rawPathPrefixTest(java.lang.String segment,
java.util.function.Supplier<Route> inner)
Checks whether the unmatchedPath of the
pekko.http.javadsl.server.RequestContext has a prefix matched by the
given PathMatcher. |
Route |
redirectToNoTrailingSlashIfPresent(StatusCode redirectionType,
java.util.function.Supplier<Route> inner)
If the request path ends with a slash, redirect to the same uri without trailing slash in the path.
|
Route |
redirectToTrailingSlashIfMissing(StatusCode redirectionType,
java.util.function.Supplier<Route> inner)
If the request path doesn't end with a slash, redirect to the same uri with trailing slash in the path.
|
parameter, parameter, parameterList, parameterList, parameterList, parameterMap, parameterMultiMap, parameterOptional, parameterOptional, parameterOrDefault, parameterRequiredValue
extractClientIP, rejectEmptyResponse, requestEntityEmpty, requestEntityPresent, selectPreferredLanguage, validate, withoutSizeLimit, withSizeLimit
delete, extractMethod, get, head, method, options, overrideMethodWithParameter, patch, post, put
completeWith, entity, handleWith, request
extractHost, host, host, host, host
attribute, optionalAttribute
checkSameOrigin, headerValue, headerValueByName, headerValueByType, headerValuePF, optionalHeaderValue, optionalHeaderValueByName, optionalHeaderValueByType, optionalHeaderValuePF
completeOrRecoverWith, onComplete, onComplete, onCompleteWithBreaker, onSuccess, onSuccess
formField, formField, formFieldList, formFieldList, formFieldList, formFieldMap, formFieldMultiMap, formFieldOptional, formFieldOptional
fileUpload, fileUploadAll, storeUploadedFile, storeUploadedFiles
defaultContentTypeResolver, defaultDirectoryRenderer, getFromBrowseableDirectories, getFromBrowseableDirectories, getFromBrowseableDirectories, getFromBrowseableDirectories, getFromBrowseableDirectories, getFromBrowseableDirectory, getFromBrowseableDirectory, getFromBrowseableDirectory, getFromBrowseableDirectory, getFromDirectory, getFromDirectory, getFromFile, getFromFile, getFromFile, getFromFile, getFromFile, getFromResource, getFromResource, getFromResource, getFromResource, getFromResourceDirectory, getFromResourceDirectory, getFromResourceDirectory, getFromResourceDirectory, listDirectoryContents, listDirectoryContents, listDirectoryContents, listDirectoryContents
handleExceptions, handleRejections
logRequest, logRequest, logRequest, logRequestResult, logRequestResultOptional, logResult, logResult, logResult
cookie, deleteCookie, deleteCookie, deleteCookie, deleteCookie, deleteCookie, optionalCookie, setCookie, setCookie
decodeRequest, decodeRequestWith, decodeRequestWith, encodeResponse, encodeResponseWith, requestEncodedWith, responseEncodingAccepted, withPrecompressedMediaTypeSupport
conditional, conditional, conditional, conditional
cancelRejection, cancelRejections, cancelRejections, extract, extractActorSystem, extractDataBytes, extractEntity, extractExecutionContext, extractLog, extractMatchedPath, extractMaterializer, extractParserSettings, extractRequest, extractRequestContext, extractRequestEntity, extractSettings, extractStrictEntity, extractStrictEntity, extractUnmatchedPath, extractUri, mapInnerRoute, mapRejections, mapRequest, mapRequestContext, mapResponse, mapResponseEntity, mapResponseHeaders, mapRouteResult, mapRouteResultFuture, mapRouteResultPF, mapRouteResultWith, mapRouteResultWithPF, mapSettings, mapUnmatchedPath, pass, provide, recoverRejections, recoverRejectionsWith, toStrictEntity, toStrictEntity, withExecutionContext, withLog, withMaterializer, withSettings
public Route ignoreTrailingSlash(java.util.function.Supplier<Route> inner)
inner
- (undocumented)public Route path(java.lang.String segment, java.util.function.Supplier<Route> inner)
segment
- (undocumented)inner
- (undocumented)public Route path(PathMatcher0 p, java.util.function.Supplier<Route> inner)
PathMatcher0
to the remaining unmatched path after consuming a leading slash.
The matcher has to match the remaining path completely.
If matched the value extracted by the PathMatcher0
is extracted on the directive level.p
- (undocumented)inner
- (undocumented)public <T> Route path(PathMatcher1<T> p, java.util.function.Function<T,Route> inner)
public <T1,T2> Route path(PathMatcher2<T1,T2> p, java.util.function.BiFunction<T1,T2,Route> inner)
public <T> Route path(Unmarshaller<java.lang.String,T> t, java.util.function.Function<T,Route> inner)
t
- (undocumented)inner
- (undocumented)public Route pathEnd(java.util.function.Supplier<Route> inner)
pekko.http.javadsl.server.RequestContext
is non-empty,
or said differently: only passes on the request to its inner route if the request path
has been matched completely.inner
- (undocumented)public Route pathEndOrSingleSlash(java.util.function.Supplier<Route> inner)
Note that trailing slash and non-trailing slash URLs are '''not''' the same, although they often serve
the same content. It is recommended to serve only one URL version and make the other redirect to it using
redirectToTrailingSlashIfMissing(org.apache.pekko.http.javadsl.model.StatusCode, java.util.function.Supplier<org.apache.pekko.http.javadsl.server.Route>)
or redirectToNoTrailingSlashIfPresent(org.apache.pekko.http.javadsl.model.StatusCode, java.util.function.Supplier<org.apache.pekko.http.javadsl.server.Route>)
directive.
For example:
def route = {
// redirect '/users/' to '/users', '/users/:userId/' to '/users/:userId'
redirectToNoTrailingSlashIfPresent(Found) {
pathPrefix("users") {
concat(
pathEnd {
// user list ...
},
path(UUID) { userId =>
// user profile ...
}
)
}
}
}
For further information, refer to: http://googlewebmastercentral.blogspot.de/2010/04/to-slash-or-not-to-slash.html
inner
- (undocumented)public Route pathPrefix(java.lang.String segment, java.util.function.Supplier<Route> inner)
segment
- (undocumented)inner
- (undocumented)public Route pathPrefix(PathMatcher0 p, java.util.function.Supplier<Route> inner)
PathMatcher0
to the remaining unmatched path after consuming a leading slash.
The matcher has to match a prefix of the remaining path.
If matched the value extracted by the PathMatcher is extracted on the directive level.p
- (undocumented)inner
- (undocumented)public <T> Route pathPrefix(PathMatcher1<T> p, java.util.function.Function<T,Route> inner)
public <T1,T2> Route pathPrefix(PathMatcher2<T1,T2> p, java.util.function.BiFunction<T1,T2,Route> inner)
public <T> Route pathPrefix(Unmarshaller<java.lang.String,T> t, java.util.function.Function<T,Route> inner)
t
- (undocumented)inner
- (undocumented)public Route pathPrefixTest(java.lang.String segment, java.util.function.Supplier<Route> inner)
pekko.http.javadsl.server.RequestContext
has a prefix matched by the
given PathMatcher. In analogy to the pathPrefix
directive a leading slash is implied.segment
- (undocumented)inner
- (undocumented)public Route pathPrefixTest(PathMatcher0 pm, java.util.function.Supplier<Route> inner)
public <T1> Route pathPrefixTest(PathMatcher1<T1> pm, java.util.function.Function<T1,Route> inner)
public <T1,T2> Route pathPrefixTest(PathMatcher2<T1,T2> pm, java.util.function.BiFunction<T1,T2,Route> inner)
public Route pathSingleSlash(java.util.function.Supplier<Route> inner)
inner
- (undocumented)public Route pathSuffix(java.lang.String segment, java.util.function.Supplier<Route> inner)
pekko.http.scaladsl.server.PathMatcher
to a suffix of the remaining unmatchedPath of the pekko.http.javadsl.server.RequestContext
.
If matched the value extracted by the pekko.http.javadsl.server.PathMatcher0
is extracted and the matched parts of the path are consumed.
Note that, for efficiency reasons, the given pekko.http.javadsl.server.PathMatcher0
must match the desired suffix in reversed-segment
order, i.e. pathSuffix("baz" / "bar")
would match /foo/bar/baz
!segment
- (undocumented)inner
- (undocumented)public Route pathSuffix(PathMatcher0 pm, java.util.function.Supplier<Route> inner)
public <T1> Route pathSuffix(PathMatcher1<T1> pm, java.util.function.Function<T1,Route> inner)
public <T1,T2> Route pathSuffix(PathMatcher2<T1,T2> pm, java.util.function.BiFunction<T1,T2,Route> inner)
public Route pathSuffixTest(java.lang.String segment, java.util.function.Supplier<Route> inner)
pekko.http.javadsl.server.RequestContext
has a suffix matched by the
given PathMatcher. However, as opposed to the pathSuffix directive the matched path is not
actually "consumed".
Note that, for efficiency reasons, the given PathMatcher must match the desired suffix in reversed-segment
order, i.e. pathSuffixTest("baz" / "bar")
would match /foo/bar/baz
!segment
- (undocumented)inner
- (undocumented)public Route pathSuffixTest(PathMatcher0 pm, java.util.function.Supplier<Route> inner)
public <T1> Route pathSuffixTest(PathMatcher1<T1> pm, java.util.function.Function<T1,Route> inner)
public <T1,T2> Route pathSuffixTest(PathMatcher2<T1,T2> pm, java.util.function.BiFunction<T1,T2,Route> inner)
public Route rawPathPrefix(java.lang.String segment, java.util.function.Supplier<Route> inner)
pekko.http.javadsl.server.RequestContext
(i.e. without implicitly consuming a leading slash).
The matcher has to match a prefix of the remaining path.
If matched the value extracted by the PathMatcher is extracted on the directive level.segment
- (undocumented)inner
- (undocumented)public Route rawPathPrefix(PathMatcher0 pm, java.util.function.Supplier<Route> inner)
public <T1> Route rawPathPrefix(PathMatcher1<T1> pm, java.util.function.Function<T1,Route> inner)
public <T1,T2> Route rawPathPrefix(PathMatcher2<T1,T2> pm, java.util.function.BiFunction<T1,T2,Route> inner)
public Route rawPathPrefixTest(java.lang.String segment, java.util.function.Supplier<Route> inner)
pekko.http.javadsl.server.RequestContext
has a prefix matched by the
given PathMatcher. However, as opposed to the pathPrefix
directive the matched path is not
actually "consumed".segment
- (undocumented)inner
- (undocumented)public Route rawPathPrefixTest(PathMatcher0 pm, java.util.function.Supplier<Route> inner)
public <T1> Route rawPathPrefixTest(PathMatcher1<T1> pm, java.util.function.Function<T1,Route> inner)
public <T1,T2> Route rawPathPrefixTest(PathMatcher2<T1,T2> pm, java.util.function.BiFunction<T1,T2,Route> inner)
public Route redirectToNoTrailingSlashIfPresent(StatusCode redirectionType, java.util.function.Supplier<Route> inner)
'''Caveat''': pathSingleSlash(java.util.function.Supplier<org.apache.pekko.http.javadsl.server.Route>)
directive will not match inside of this directive.
redirectionType
- A status code from StatusCodes, which must be a redirection type.inner
- (undocumented)public Route redirectToTrailingSlashIfMissing(StatusCode redirectionType, java.util.function.Supplier<Route> inner)
'''Caveat''': path(java.lang.String, java.util.function.Supplier<org.apache.pekko.http.javadsl.server.Route>)
without trailing slash and pathEnd(java.util.function.Supplier<org.apache.pekko.http.javadsl.server.Route>)
directives will not match inside of this directive.
redirectionType
- A status code from StatusCodes, which must be a redirection type.inner
- (undocumented)