abstract class RouteTest extends AllDirectives with WSTestRequestBuilding
A base class to create route tests for testing libraries. An implementation needs to provide code to provide and shutdown an akka.actor.ActorSystem, akka.stream.Materializer, and scala.concurrent.ExecutionContextExecutor.
See JUnitRouteTest
for an example of a concrete implementation.
- Source
- RouteTest.scala
- Grouped
- Alphabetic
- By Inheritance
- RouteTest
- WSTestRequestBuilding
- AllDirectives
- TlsDirectives
- CorsDirectives
- FramedEntityStreamingDirectives
- TimeoutDirectives
- WebSocketDirectives
- SecurityDirectives
- SchemeDirectives
- RouteDirectives
- RespondWithDirectives
- RangeDirectives
- PathDirectives
- ParameterDirectives
- MiscDirectives
- MethodDirectives
- MarshallingDirectives
- HostDirectives
- AttributeDirectives
- HeaderDirectives
- FutureDirectives
- FormFieldDirectives
- FileUploadDirectives
- FileAndResourceDirectives
- ExecutionDirectives
- DebuggingDirectives
- CookieDirectives
- CodingDirectives
- CacheConditionDirectives
- BasicDirectives
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
future
- def completeOrRecoverWith[T](f: Supplier[CompletionStage[T]], marshaller: Marshaller[T, RequestEntity], inner: Function[Throwable, Route]): Route
"Unwraps" a
CompletionStage<T>
and runs the inner route when the stage has failed with the stage's failure exception as an extraction of typeThrowable
."Unwraps" a
CompletionStage<T>
and runs the inner route when the stage has failed with the stage's failure exception as an extraction of typeThrowable
. If the completion stage succeeds the request is completed using the values marshaller (This directive therefore requires a marshaller for the completion stage value type to be provided.)- Definition Classes
- FutureDirectives
- def onComplete[T](cs: CompletionStage[T], inner: Function[Try[T], Route]): RouteAdapter
"Unwraps" a
CompletionStage<T>
and runs the inner route after future completion with the future's value as an extraction of typeTry<T>
."Unwraps" a
CompletionStage<T>
and runs the inner route after future completion with the future's value as an extraction of typeTry<T>
.- Definition Classes
- FutureDirectives
- def onComplete[T](f: Supplier[CompletionStage[T]], inner: Function[Try[T], Route]): RouteAdapter
"Unwraps" a
CompletionStage<T>
and runs the inner route after future completion with the future's value as an extraction of typeTry<T>
."Unwraps" a
CompletionStage<T>
and runs the inner route after future completion with the future's value as an extraction of typeTry<T>
.- Definition Classes
- FutureDirectives
- def onCompleteWithBreaker[T](breaker: CircuitBreaker, f: Supplier[CompletionStage[T]], inner: Function[Try[T], Route]): RouteAdapter
"Unwraps" a
CompletionStage[T]
and runs the inner route after future completion with the future's value as an extraction of typeT
if the suppliedCircuitBreaker
is closed."Unwraps" a
CompletionStage[T]
and runs the inner route after future completion with the future's value as an extraction of typeT
if the suppliedCircuitBreaker
is closed.If the supplied CircuitBreaker is open the request is rejected with a akka.http.javadsl.server.CircuitBreakerOpenRejection.
- Definition Classes
- FutureDirectives
- def onSuccess[T](cs: CompletionStage[T], inner: Function[T, Route]): RouteAdapter
"Unwraps" a
CompletionStage<T>
and runs the inner route after stage completion with the stage's value as an extraction of typeT
."Unwraps" a
CompletionStage<T>
and runs the inner route after stage completion with the stage's value as an extraction of typeT
. If the stage fails its failure Throwable is bubbled up to the nearest ExceptionHandler.- Definition Classes
- FutureDirectives
- def onSuccess[T](f: Supplier[CompletionStage[T]], inner: Function[T, Route]): RouteAdapter
"Unwraps" a
CompletionStage<T>
and runs the inner route after stage completion with the stage's value as an extraction of typeT
."Unwraps" a
CompletionStage<T>
and runs the inner route after stage completion with the stage's value as an extraction of typeT
. If the stage fails its failure Throwable is bubbled up to the nearest ExceptionHandler.- Definition Classes
- FutureDirectives
header
- def checkSameOrigin(allowed: HttpOriginRange, inner: Supplier[Route]): Route
Checks that request comes from the same origin.
Checks that request comes from the same origin. Extracts the Origin header value and verifies that allowed range contains the obtained value. In the case of absent of the Origin header rejects with MissingHeaderRejection. If the origin value is not in the allowed range rejects with an InvalidOriginRejection and StatusCodes.FORBIDDEN status.
- Definition Classes
- HeaderDirectives
Ungrouped
- implicit abstract def materializer: Materializer
- implicit abstract def system: ActorSystem
- def WS[T](uri: Uri, clientSideHandler: Flow[Message, Message, T], materializer: Materializer, subprotocols: List[String]): HttpRequest
- Definition Classes
- WSTestRequestBuilding
- def WS[T](uri: Uri, clientSideHandler: Flow[Message, Message, T], materializer: Materializer): HttpRequest
- Definition Classes
- WSTestRequestBuilding
- def attribute[T](key: AttributeKey[T], inner: Function[T, Route]): RouteAdapter
Extracts the value of the request attribute with the given key.
Extracts the value of the request attribute with the given key. If no attribute is found the request is rejected with a akka.http.javadsl.server.MissingAttributeRejection.
- Definition Classes
- AttributeDirectives
- def authenticateBasic[T](realm: String, authenticator: Function[Optional[ProvidedCredentials], Optional[T]], inner: Function[T, Route]): Route
Wraps the inner route with Http Basic authentication support using a given
Authenticator[T]
.Wraps the inner route with Http Basic authentication support using a given
Authenticator[T]
. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.Authentication is required in this variant, i.e. the request is rejected if [authenticator] returns Optional.empty.
- Definition Classes
- SecurityDirectives
- def authenticateBasicAsync[T](realm: String, authenticator: Function[Optional[ProvidedCredentials], CompletionStage[Optional[T]]], inner: Function[T, Route]): Route
Wraps the inner route with Http Basic authentication support.
Wraps the inner route with Http Basic authentication support. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.
Authentication is required in this variant, i.e. the request is rejected if [authenticator] returns Optional.empty.
- Definition Classes
- SecurityDirectives
- def authenticateBasicAsyncOptional[T](realm: String, authenticator: Function[Optional[ProvidedCredentials], CompletionStage[Optional[T]]], inner: Function[Optional[T], Route]): Route
Wraps the inner route with Http Basic authentication support.
Wraps the inner route with Http Basic authentication support. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.
Authentication is optional in this variant.
- Definition Classes
- SecurityDirectives
- Annotations
- @CorrespondsTo()
- def authenticateBasicOptional[T](realm: String, authenticator: Function[Optional[ProvidedCredentials], Optional[T]], inner: Function[Optional[T], Route]): Route
Wraps the inner route with Http Basic authentication support using a given
Authenticator[T]
.Wraps the inner route with Http Basic authentication support using a given
Authenticator[T]
. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.Authentication is optional in this variant.
- Definition Classes
- SecurityDirectives
- Annotations
- @CorrespondsTo()
- def authenticateBasicPF[T](realm: String, authenticator: PartialFunction[Optional[ProvidedCredentials], T], inner: Function[T, Route]): Route
Wraps the inner route with Http Basic authentication support.
Wraps the inner route with Http Basic authentication support. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.
Authentication is required in this variant, i.e. the request is rejected if [authenticator] returns Optional.empty.
- Definition Classes
- SecurityDirectives
- def authenticateBasicPFAsync[T](realm: String, authenticator: PartialFunction[Optional[ProvidedCredentials], CompletionStage[T]], inner: Function[T, Route]): Route
Wraps the inner route with Http Basic authentication support.
Wraps the inner route with Http Basic authentication support. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.
Authentication is required in this variant, i.e. the request is rejected if [authenticator] returns Optional.empty.
- Definition Classes
- SecurityDirectives
- def authenticateOAuth2[T](realm: String, authenticator: Function[Optional[ProvidedCredentials], Optional[T]], inner: Function[T, Route]): Route
A directive that wraps the inner route with OAuth2 Bearer Token authentication support.
A directive that wraps the inner route with OAuth2 Bearer Token authentication support. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.
Authentication is required in this variant, i.e. the request is rejected if [authenticator] returns Optional.empty.
- Definition Classes
- SecurityDirectives
- def authenticateOAuth2Async[T](realm: String, authenticator: Function[Optional[ProvidedCredentials], CompletionStage[Optional[T]]], inner: Function[T, Route]): Route
A directive that wraps the inner route with OAuth2 Bearer Token authentication support.
A directive that wraps the inner route with OAuth2 Bearer Token authentication support. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.
Authentication is required in this variant, i.e. the request is rejected if [authenticator] returns Optional.empty.
- Definition Classes
- SecurityDirectives
- def authenticateOAuth2AsyncOptional[T](realm: String, authenticator: Function[Optional[ProvidedCredentials], CompletionStage[Optional[T]]], inner: Function[Optional[T], Route]): Route
A directive that wraps the inner route with OAuth2 Bearer Token authentication support.
A directive that wraps the inner route with OAuth2 Bearer Token authentication support. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.
Authentication is optional in this variant.
- Definition Classes
- SecurityDirectives
- Annotations
- @CorrespondsTo()
- def authenticateOAuth2Optional[T](realm: String, authenticator: Function[Optional[ProvidedCredentials], Optional[T]], inner: Function[Optional[T], Route]): Route
A directive that wraps the inner route with OAuth2 Bearer Token authentication support.
A directive that wraps the inner route with OAuth2 Bearer Token authentication support. The given authenticator determines whether the credentials in the request are valid and, if so, which user object to supply to the inner route.
Authentication is optional in this variant.
- Definition Classes
- SecurityDirectives
- Annotations
- @CorrespondsTo()
- def authenticateOrRejectWithChallenge[C <: HttpCredentials, T](c: Class[C], authenticator: Function[Optional[C], CompletionStage[Either[HttpChallenge, T]]], inner: Function[T, Route]): Route
Lifts an authenticator function into a directive.
Lifts an authenticator function into a directive. Same as
authenticateOrRejectWithChallenge
but only applies the authenticator function with a certain type of credentials.- Definition Classes
- SecurityDirectives
- def authenticateOrRejectWithChallenge[T](authenticator: Function[Optional[HttpCredentials], CompletionStage[Either[HttpChallenge, T]]], inner: Function[T, Route]): Route
Lifts an authenticator function into a directive.
Lifts an authenticator function into a directive. The authenticator function gets passed in credentials from the akka.http.javadsl.model.headers.Authorization header of the request. If the function returns
Right(user)
the user object is provided to the inner route. If the function returnsLeft(challenge)
the request is rejected with an akka.http.javadsl.server.AuthenticationFailedRejection that contains this challenge to be added to the response.- Definition Classes
- SecurityDirectives
- def authorize(check: Supplier[Boolean], inner: Supplier[Route]): Route
Applies the given authorization check to the request.
Applies the given authorization check to the request. If the check fails the route is rejected with an akka.http.javadsl.server.AuthorizationFailedRejection.
- Definition Classes
- SecurityDirectives
- def authorizeAsync(check: Supplier[CompletionStage[Boolean]], inner: Supplier[Route]): Route
Applies the given authorization check to the request.
Applies the given authorization check to the request. If the check fails the route is rejected with an akka.http.javadsl.server.AuthorizationFailedRejection.
- Definition Classes
- SecurityDirectives
- def authorizeAsyncWithRequestContext(check: Function[RequestContext, CompletionStage[Boolean]], inner: Supplier[Route]): Route
Asynchronous version of authorize.
Asynchronous version of authorize. If the CompletionStage fails or is completed with
false
authorization fails and the route is rejected with an akka.http.javadsl.server.AuthorizationFailedRejection.- Definition Classes
- SecurityDirectives
- Annotations
- @CorrespondsTo()
- def authorizeWithRequestContext(check: Function[RequestContext, Boolean], inner: Supplier[Route]): Route
Applies the given authorization check to the request.
Applies the given authorization check to the request. If the check fails the route is rejected with an akka.http.javadsl.server.AuthorizationFailedRejection.
- Definition Classes
- SecurityDirectives
- Annotations
- @CorrespondsTo()
- def cancelRejection(rejection: Rejection, inner: Supplier[Route]): Route
Adds a TransformationRejection cancelling all rejections equal to the given one to the list of rejections potentially coming back from the inner route.
Adds a TransformationRejection cancelling all rejections equal to the given one to the list of rejections potentially coming back from the inner route.
- Definition Classes
- BasicDirectives
- def cancelRejections(filter: Predicate[Rejection], inner: Supplier[Route]): Route
Adds a TransformationRejection cancelling all rejections for which the given filter function returns true to the list of rejections potentially coming back from the inner route.
Adds a TransformationRejection cancelling all rejections for which the given filter function returns true to the list of rejections potentially coming back from the inner route.
- Definition Classes
- BasicDirectives
- def cancelRejections(classes: Iterable[Class[_]], inner: Supplier[Route]): Route
Adds a TransformationRejection cancelling all rejections of one of the given classes to the list of rejections potentially coming back from the inner route.
Adds a TransformationRejection cancelling all rejections of one of the given classes to the list of rejections potentially coming back from the inner route.
- Definition Classes
- BasicDirectives
- def complete(entity: RequestEntity): RouteAdapter
Completes the request as HTTP 200 OK with the given value as response entity.
Completes the request as HTTP 200 OK with the given value as response entity.
- Definition Classes
- RouteDirectives
- def complete(entity: ResponseEntity): RouteAdapter
Completes the request as HTTP 200 OK with the given value as response entity.
Completes the request as HTTP 200 OK with the given value as response entity.
- Definition Classes
- RouteDirectives
- def complete(headers: Iterable[HttpHeader], entity: RequestEntity): RouteAdapter
Completes the request as HTTP 200 OK, adding the given headers and response entity.
Completes the request as HTTP 200 OK, adding the given headers and response entity.
- Definition Classes
- RouteDirectives
- def complete(headers: Iterable[HttpHeader], entity: ResponseEntity): RouteAdapter
Completes the request as HTTP 200 OK, adding the given headers and response entity.
Completes the request as HTTP 200 OK, adding the given headers and response entity.
- Definition Classes
- RouteDirectives
- def complete[T](headers: Iterable[HttpHeader], value: T, marshaller: Marshaller[T, RequestEntity]): RouteAdapter
Completes the request as HTTP 200 OK, adding the given headers, and marshalling the given value as response entity.
Completes the request as HTTP 200 OK, adding the given headers, and marshalling the given value as response entity.
- Definition Classes
- RouteDirectives
- def complete(status: StatusCode, entity: String): RouteAdapter
Completes the request using the given status code and the given body as UTF-8.
Completes the request using the given status code and the given body as UTF-8.
- Definition Classes
- RouteDirectives
- def complete(status: StatusCode, entity: RequestEntity): RouteAdapter
Completes the request using the given status code and response entity.
Completes the request using the given status code and response entity.
- Definition Classes
- RouteDirectives
- def complete(status: StatusCode, entity: ResponseEntity): RouteAdapter
Completes the request using the given status code and response entity.
Completes the request using the given status code and response entity.
- Definition Classes
- RouteDirectives
- def complete[T](status: StatusCode, value: T, marshaller: Marshaller[T, RequestEntity]): RouteAdapter
Completes the request using the given status code, marshalling the given value as response entity.
Completes the request using the given status code, marshalling the given value as response entity.
- Definition Classes
- RouteDirectives
- def complete(status: StatusCode, headers: Iterable[HttpHeader], entity: RequestEntity): RouteAdapter
Completes the request using the given status code, headers, and response entity.
Completes the request using the given status code, headers, and response entity.
- Definition Classes
- RouteDirectives
- def complete(status: StatusCode, headers: Iterable[HttpHeader], entity: ResponseEntity): RouteAdapter
Completes the request using the given status code, headers, and response entity.
Completes the request using the given status code, headers, and response entity.
- Definition Classes
- RouteDirectives
- def complete[T](status: StatusCode, headers: Iterable[HttpHeader], value: T, marshaller: Marshaller[T, RequestEntity]): RouteAdapter
Completes the request using the given status code and headers, marshalling the given value as response entity.
Completes the request using the given status code and headers, marshalling the given value as response entity.
- Definition Classes
- RouteDirectives
- def complete[T](value: T, marshaller: Marshaller[T, HttpResponse]): RouteAdapter
Completes the request by marshalling the given value into an http response.
Completes the request by marshalling the given value into an http response.
- Definition Classes
- RouteDirectives
- def complete(status: StatusCode): Route
Completes the request using the given status code.
Completes the request using the given status code.
- Definition Classes
- RouteDirectives
- def complete(response: HttpResponse): Route
Completes the request using the given http response.
Completes the request using the given http response.
- Definition Classes
- RouteDirectives
- def complete(body: String): Route
Completes the request using an HTTP 200 OK status code and the given body as UTF-8 entity.
Completes the request using an HTTP 200 OK status code and the given body as UTF-8 entity.
- Definition Classes
- RouteDirectives
- def completeOK[T](value: T, marshaller: Marshaller[T, RequestEntity]): RouteAdapter
Completes the request as HTTP 200 OK, marshalling the given value as response entity.
Completes the request as HTTP 200 OK, marshalling the given value as response entity.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeOKWithFuture[T](value: CompletionStage[T], marshaller: Marshaller[T, RequestEntity]): RouteAdapter
Completes the request with an
OK
status code by marshalling the given value into an http response.Completes the request with an
OK
status code by marshalling the given value into an http response.- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeOKWithFuture(value: CompletionStage[RequestEntity]): RouteAdapter
Completes the request by marshalling the given future value into an http response.
Completes the request by marshalling the given future value into an http response.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeOKWithFuture[T](value: Future[T], marshaller: Marshaller[T, RequestEntity]): RouteAdapter
Completes the request by marshalling the given value into an http response.
Completes the request by marshalling the given value into an http response.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeOKWithFutureString(value: CompletionStage[String]): RouteAdapter
Completes the request by marshalling the given future value into an http response.
Completes the request by marshalling the given future value into an http response.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeOKWithFutureString(value: Future[String]): RouteAdapter
Completes the request by marshalling the given future value into an http response.
Completes the request by marshalling the given future value into an http response.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeOKWithSource[T, M](source: Source[T, M])(implicit m: Marshaller[T, RequestEntity], support: EntityStreamingSupport): Route
- Definition Classes
- FramedEntityStreamingDirectives
- Annotations
- @CorrespondsTo()
- def completeWith[T](marshaller: Marshaller[T, _ <: HttpResponse], inner: Consumer[Consumer[T]]): Route
Uses the marshaller for the given type to produce a completion function that is passed to its inner function.
Uses the marshaller for the given type to produce a completion function that is passed to its inner function. You can use it do decouple marshaller resolution from request completion.
- Definition Classes
- MarshallingDirectives
- def completeWithFuture[T](value: CompletionStage[T], marshaller: Marshaller[T, HttpResponse]): RouteAdapter
Completes the request by marshalling the given value into an http response.
Completes the request by marshalling the given value into an http response.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeWithFuture(value: CompletionStage[HttpResponse]): RouteAdapter
Completes the request by marshalling the given future value into an http response.
Completes the request by marshalling the given future value into an http response.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeWithFuture[T](value: Future[T], marshaller: Marshaller[T, HttpResponse]): RouteAdapter
Completes the request by marshalling the given value into an http response.
Completes the request by marshalling the given value into an http response.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeWithFutureResponse(value: Future[HttpResponse]): RouteAdapter
Completes the request by marshalling the given future value into an http response.
Completes the request by marshalling the given future value into an http response.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeWithFutureStatus(status: CompletionStage[StatusCode]): Route
Completes the request using the given future status code.
Completes the request using the given future status code.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeWithFutureStatus(status: Future[StatusCode]): Route
Completes the request using the given future status code.
Completes the request using the given future status code.
- Definition Classes
- RouteDirectives
- Annotations
- @CorrespondsTo()
- def completeWithSource[T, M](source: Source[T, M])(implicit m: Marshaller[T, ByteString], support: EntityStreamingSupport): Route
- Definition Classes
- FramedEntityStreamingDirectives
- Annotations
- @CorrespondsTo()
- def concat(first: Route, alternatives: Route*): Route
Used to chain multiple alternate routes using comma, rather than having to explicitly call route1.orElse(route2).orElse(route3).
Used to chain multiple alternate routes using comma, rather than having to explicitly call route1.orElse(route2).orElse(route3).
- Definition Classes
- RouteDirectives
- Annotations
- @varargs()
- def conditional(eTag: Optional[EntityTag], lastModified: Optional[DateTime], inner: Supplier[Route]): Route
Wraps its inner route with support for Conditional Requests as defined by http://tools.ietf.org/html/rfc7232
Wraps its inner route with support for Conditional Requests as defined by http://tools.ietf.org/html/rfc7232
In particular the algorithm defined by http://tools.ietf.org/html/rfc7232#section-6 is implemented by this directive.
Note: if you want to combine this directive with
withRangeSupport(...)
you need to put it on the *outside* of thewithRangeSupport(...)
directive, i.e.withRangeSupport(...)
must be on a deeper level in your route structure in order to function correctly.- Definition Classes
- CacheConditionDirectives
- def conditional(eTag: EntityTag, lastModified: DateTime, inner: Supplier[Route]): Route
Wraps its inner route with support for Conditional Requests as defined by http://tools.ietf.org/html/rfc7232
Wraps its inner route with support for Conditional Requests as defined by http://tools.ietf.org/html/rfc7232
In particular the algorithm defined by http://tools.ietf.org/html/rfc7232#section-6 is implemented by this directive.
Note: if you want to combine this directive with
withRangeSupport(...)
you need to put it on the *outside* of thewithRangeSupport(...)
directive, i.e.withRangeSupport(...)
must be on a deeper level in your route structure in order to function correctly.- Definition Classes
- CacheConditionDirectives
- def conditional(lastModified: DateTime, inner: Supplier[Route]): Route
Wraps its inner route with support for Conditional Requests as defined by http://tools.ietf.org/html/rfc7232
Wraps its inner route with support for Conditional Requests as defined by http://tools.ietf.org/html/rfc7232
In particular the algorithm defined by http://tools.ietf.org/html/rfc7232#section-6 is implemented by this directive.
Note: if you want to combine this directive with
withRangeSupport(...)
you need to put it on the *outside* of thewithRangeSupport(...)
directive, i.e.withRangeSupport(...)
must be on a deeper level in your route structure in order to function correctly.- Definition Classes
- CacheConditionDirectives
- def conditional(eTag: EntityTag, inner: Supplier[Route]): Route
Wraps its inner route with support for Conditional Requests as defined by http://tools.ietf.org/html/rfc7232
Wraps its inner route with support for Conditional Requests as defined by http://tools.ietf.org/html/rfc7232
In particular the algorithm defined by http://tools.ietf.org/html/rfc7232#section-6 is implemented by this directive.
Note: if you want to combine this directive with
withRangeSupport(...)
you need to put it on the *outside* of thewithRangeSupport(...)
directive, i.e.withRangeSupport(...)
must be on a deeper level in your route structure in order to function correctly.- Definition Classes
- CacheConditionDirectives
- def cookie(name: String, inner: Function[HttpCookiePair, Route]): Route
Extracts the HttpCookiePair with the given name.
Extracts the HttpCookiePair with the given name. If the cookie is not present the request is rejected with a respective akka.http.javadsl.server.MissingCookieRejection.
- Definition Classes
- CookieDirectives
- def cors(settings: CorsSettings, inner: Supplier[Route]): Route
Wraps its inner route with support for the CORS mechanism, enabling cross origin requests using the given cors settings.
Wraps its inner route with support for the CORS mechanism, enabling cross origin requests using the given cors settings.
- Definition Classes
- CorsDirectives
- def cors(inner: Supplier[Route]): Route
Wraps its inner route with support for the CORS mechanism, enabling cross origin requests.
Wraps its inner route with support for the CORS mechanism, enabling cross origin requests.
The settings are loaded from the Actor System configuration.
- Definition Classes
- CorsDirectives
- def decodeRequest(inner: Supplier[Route]): Route
Decompresses the incoming request if it is
gzip
ordeflate
compressed.Decompresses the incoming request if it is
gzip
ordeflate
compressed. Uncompressed requests are passed through untouched. If the request encoded with another encoding the request is rejected with anUnsupportedRequestEncodingRejection
.- Definition Classes
- CodingDirectives
- def decodeRequestWith(coders: Iterable[Coder], inner: Supplier[Route]): Route
Decodes the incoming request if it is encoded with one of the given encoders.
Decodes the incoming request if it is encoded with one of the given encoders. If the request encoding doesn't match one of the given encoders the request is rejected with an
UnsupportedRequestEncodingRejection
. If no decoders are given the default encoders (Gzip
,Deflate
,NoCoding
) are used.- Definition Classes
- CodingDirectives
- def decodeRequestWith(coder: Coder, inner: Supplier[Route]): Route
Decodes the incoming request using the given Decoder.
Decodes the incoming request using the given Decoder. If the request encoding doesn't match the request is rejected with an
UnsupportedRequestEncodingRejection
.- Definition Classes
- CodingDirectives
- def defaultContentTypeResolver: ContentTypeResolver
Default ContentTypeResolver.
Default ContentTypeResolver.
- Definition Classes
- FileAndResourceDirectives
- def defaultDirectoryRenderer: DirectoryRenderer
Default DirectoryRenderer to be used with directory listing directives.
Default DirectoryRenderer to be used with directory listing directives.
- Definition Classes
- FileAndResourceDirectives
- def delete(inner: Supplier[Route]): Route
- Definition Classes
- MethodDirectives
- def deleteCookie(name: String, domain: String, path: String, inner: Supplier[Route]): Route
Adds a Set-Cookie response header expiring the cookie with the given properties.
Adds a Set-Cookie response header expiring the cookie with the given properties.
- name
Name of the cookie to match
- domain
Domain of the cookie to match, or empty string to match any domain
- path
Path of the cookie to match, or empty string to match any path
- Definition Classes
- CookieDirectives
- def deleteCookie(name: String, domain: String, inner: Supplier[Route]): Route
Adds a Set-Cookie response header expiring the cookie with the given properties.
Adds a Set-Cookie response header expiring the cookie with the given properties.
- name
Name of the cookie to match
- domain
Domain of the cookie to match, or empty string to match any domain
- Definition Classes
- CookieDirectives
- def deleteCookie(name: String, inner: Supplier[Route]): Route
Adds a Set-Cookie response header expiring the cookie with the given properties.
Adds a Set-Cookie response header expiring the cookie with the given properties.
- name
Name of the cookie to match
- Definition Classes
- CookieDirectives
- def deleteCookie(cookies: Iterable[HttpCookie], inner: Supplier[Route]): Route
Adds a Set-Cookie response header expiring the given cookies.
Adds a Set-Cookie response header expiring the given cookies.
- Definition Classes
- CookieDirectives
- def deleteCookie(cookie: HttpCookie, inner: Supplier[Route]): Route
Adds a Set-Cookie response header expiring the given cookie.
Adds a Set-Cookie response header expiring the given cookie.
- Definition Classes
- CookieDirectives
- def encodeResponse(inner: Supplier[Route]): Route
Encodes the response with the encoding that is requested by the client via the
Accept- Encoding
header.Encodes the response with the encoding that is requested by the client via the
Accept- Encoding
header. The response encoding is determined by the rules specified in http://tools.ietf.org/html/rfc7231#section-5.3.4.If the
Accept-Encoding
header is missing or empty or specifies an encoding other than identity, gzip or deflate then no encoding is used.- Definition Classes
- CodingDirectives
- def encodeResponseWith(coders: Iterable[Coder], inner: Supplier[Route]): Route
Encodes the response with the encoding that is requested by the client via the
Accept- Encoding
header.Encodes the response with the encoding that is requested by the client via the
Accept- Encoding
header. The response encoding is determined by the rules specified in http://tools.ietf.org/html/rfc7231#section-5.3.4.If the
Accept-Encoding
header is missing then the response is encoded using thefirst
encoder.If the
Accept-Encoding
header is empty andNoCoding
is part of the encoders then no response encoding is used. Otherwise the request is rejected.If [encoders] is empty, no encoding is performed.
- Definition Classes
- CodingDirectives
- def entity[T](unmarshaller: Unmarshaller[_ >: HttpEntity, T], inner: Function[T, Route]): Route
Unmarshalls the requests entity using the given unmarshaller, and passes the result to [inner].
Unmarshalls the requests entity using the given unmarshaller, and passes the result to [inner]. If there is a problem with unmarshalling the request is rejected with the akka.http.javadsl.server.Rejection produced by the unmarshaller.
- Definition Classes
- MarshallingDirectives
- def entityAsSourceOf[T](um: Unmarshaller[ByteString, T], support: EntityStreamingSupport, inner: Function[Source[T, NotUsed], Route]): Route
- Definition Classes
- FramedEntityStreamingDirectives
- Annotations
- @CorrespondsTo()
- implicit def executionContext: ExecutionContextExecutor
- def extract[T](extract: Function[RequestContext, T], inner: Function[T, Route]): Route
Extracts a single value using the given function.
Extracts a single value using the given function.
- Definition Classes
- BasicDirectives
- def extractActorSystem(inner: Function[ActorSystem, Route]): Route
Extracts the akka.actor.ActorSystem if the available Materializer is an akka.stream.ActorMaterializer.
Extracts the akka.actor.ActorSystem if the available Materializer is an akka.stream.ActorMaterializer. Otherwise throws an exception as it won't be able to extract the system from arbitrary materializers.
- Definition Classes
- BasicDirectives
- def extractClientCertificate(inner: Function[X509Certificate, Route]): Route
Extract the client certificate, or reject the request with a akka.http.javadsl.server.TlsClientUnverifiedRejection.
Extract the client certificate, or reject the request with a akka.http.javadsl.server.TlsClientUnverifiedRejection.
Using this directives requires tls-session info parsing to be enabled:
akka.http.server.parsing.tls-session-info-header = on
The javax.net.ssl.SSLEngine for the server needs to be set up with
setWantClientAuth(true)
orsetNeedClientAuth(true)
or else every request will be failed.- Definition Classes
- TlsDirectives
- def extractClientIP(inner: Function[RemoteAddress, Route]): Route
Extracts the client's IP from either the X-Forwarded-For, Remote-Address, X-Real-IP header or akka.http.javadsl.model.AttributeKeys.remoteAddress attribute (in that order of priority).
Extracts the client's IP from either the X-Forwarded-For, Remote-Address, X-Real-IP header or akka.http.javadsl.model.AttributeKeys.remoteAddress attribute (in that order of priority).
- Definition Classes
- MiscDirectives
- def extractCredentials(inner: Function[Optional[HttpCredentials], Route]): Route
Extracts the potentially present HttpCredentials provided with the request's akka.http.javadsl.model.headers.Authorization header.
Extracts the potentially present HttpCredentials provided with the request's akka.http.javadsl.model.headers.Authorization header.
- Definition Classes
- SecurityDirectives
- def extractDataBytes(inner: Function[Source[ByteString, Any], Route]): RouteAdapter
Extracts the entities
dataBytes
akka.stream.javadsl.Source from the akka.http.javadsl.server.RequestContext.Extracts the entities
dataBytes
akka.stream.javadsl.Source from the akka.http.javadsl.server.RequestContext.- Definition Classes
- BasicDirectives
- def extractEntity(inner: Function[RequestEntity, Route]): Route
Extracts the current http request entity.
Extracts the current http request entity.
- Definition Classes
- BasicDirectives
- Annotations
- @CorrespondsTo()
- def extractExecutionContext(inner: Function[ExecutionContextExecutor, Route]): Route
Extracts the ExecutionContextExecutor from the RequestContext.
Extracts the ExecutionContextExecutor from the RequestContext.
- Definition Classes
- BasicDirectives
- def extractHost(inner: Function[String, Route]): Route
Extracts the hostname part of the Host request header value.
Extracts the hostname part of the Host request header value.
- Definition Classes
- HostDirectives
- def extractLog(inner: Function[LoggingAdapter, Route]): Route
Extracts the LoggingAdapter
Extracts the LoggingAdapter
- Definition Classes
- BasicDirectives
- def extractMatchedPath(inner: Function[String, Route]): RouteAdapter
Extracts the already matched path from the RequestContext.
Extracts the already matched path from the RequestContext.
- Definition Classes
- BasicDirectives
- def extractMaterializer(inner: Function[Materializer, Route]): Route
Extracts the Materializer from the RequestContext.
Extracts the Materializer from the RequestContext.
- Definition Classes
- BasicDirectives
- def extractMethod(inner: Function[HttpMethod, Route]): RouteAdapter
- Definition Classes
- MethodDirectives
- def extractOfferedWsProtocols(inner: Function[List[String], Route]): Route
Extract the list of WebSocket subprotocols as offered by the client in the Sec-WebSocket-Protocol header if this is a WebSocket request.
Extract the list of WebSocket subprotocols as offered by the client in the Sec-WebSocket-Protocol header if this is a WebSocket request. Rejects with an ExpectedWebSocketRequestRejection, otherwise.
- Definition Classes
- WebSocketDirectives
- def extractParserSettings(inner: Function[ParserSettings, Route]): RouteAdapter
Extracts the akka.http.javadsl.settings.ParserSettings from the akka.http.javadsl.server.RequestContext.
Extracts the akka.http.javadsl.settings.ParserSettings from the akka.http.javadsl.server.RequestContext.
- Definition Classes
- BasicDirectives
- def extractRequest(inner: Function[HttpRequest, Route]): RouteAdapter
Extracts the current HttpRequest instance.
Extracts the current HttpRequest instance.
- Definition Classes
- BasicDirectives
- def extractRequestContext(inner: Function[RequestContext, Route]): RouteAdapter
Extracts the akka.http.javadsl.server.RequestContext itself.
Extracts the akka.http.javadsl.server.RequestContext itself.
- Definition Classes
- BasicDirectives
- def extractRequestEntity(inner: Function[RequestEntity, Route]): Route
Extracts the akka.http.javadsl.model.RequestEntity from the akka.http.javadsl.server.RequestContext.
Extracts the akka.http.javadsl.model.RequestEntity from the akka.http.javadsl.server.RequestContext.
- Definition Classes
- BasicDirectives
- def extractRequestTimeout(inner: Function[Duration, Route]): RouteAdapter
- Definition Classes
- TimeoutDirectives
- def extractScheme(inner: Function[String, Route]): Route
Extracts the Uri scheme from the request.
Extracts the Uri scheme from the request.
- Definition Classes
- SchemeDirectives
- def extractSettings(inner: Function[RoutingSettings, Route]): RouteAdapter
Extracts the RoutingSettings from the akka.http.javadsl.server.RequestContext.
Extracts the RoutingSettings from the akka.http.javadsl.server.RequestContext.
- Definition Classes
- BasicDirectives
- def extractSslSession(inner: Function[SSLSession, Route]): Route
Extract the current SSLSession.
Extract the current SSLSession.
Note: Using this directives requires tls-session info parsing to be enabled:
akka.http.server.parsing.tls-session-info-header = on
- Definition Classes
- TlsDirectives
- def extractStrictEntity(timeout: FiniteDuration, maxBytes: Long, inner: Function[Strict, Route]): Route
WARNING: This will read the entire request entity into memory and effectively disable streaming.
WARNING: This will read the entire request entity into memory and effectively disable streaming.
To help protect against excessive memory use, the request will be aborted if the request is larger than allowed by the
akka.http.parsing.max-to-strict-bytes
configuration setting.Converts the HttpEntity from the akka.http.javadsl.server.RequestContext into an akka.http.javadsl.model.HttpEntity.Strict and extracts it, or fails the route if unable to drain the entire request body within the timeout.
- timeout
The directive is failed if the stream isn't completed after the given timeout.
- Definition Classes
- BasicDirectives
- def extractStrictEntity(timeout: FiniteDuration, inner: Function[Strict, Route]): Route
WARNING: This will read the entire request entity into memory and effectively disable streaming.
WARNING: This will read the entire request entity into memory and effectively disable streaming.
To help protect against excessive memory use, the request will be aborted if the request is larger than allowed by the
akka.http.parsing.max-to-strict-bytes
configuration setting.Converts the HttpEntity from the akka.http.javadsl.server.RequestContext into an akka.http.javadsl.model.HttpEntity.Strict and extracts it, or fails the route if unable to drain the entire request body within the timeout.
- timeout
The directive is failed if the stream isn't completed after the given timeout.
- Definition Classes
- BasicDirectives
- def extractUnmatchedPath(inner: Function[String, Route]): RouteAdapter
Extracts the yet unmatched path from the RequestContext.
Extracts the yet unmatched path from the RequestContext.
- Definition Classes
- BasicDirectives
- def extractUri(inner: Function[Uri, Route]): RouteAdapter
Extracts the complete request URI.
Extracts the complete request URI.
- Definition Classes
- BasicDirectives
- def extractWebSocketUpgrade(inner: Function[WebSocketUpgrade, Route]): Route
Extract the UpgradeToWebSocket attribute if this is a WebSocket request.
Extract the UpgradeToWebSocket attribute if this is a WebSocket request. Rejects with an ExpectedWebSocketRequestRejection, otherwise.
- Definition Classes
- WebSocketDirectives
- def failWith(error: Throwable): Route
Bubbles the given error up the response chain, where it is dealt with by the closest
handleExceptions
directive and its ExceptionHandler.Bubbles the given error up the response chain, where it is dealt with by the closest
handleExceptions
directive and its ExceptionHandler.- Definition Classes
- RouteDirectives
- def fileUpload(fieldName: String, inner: BiFunction[FileInfo, Source[ByteString, Any], Route]): Route
Collects each body part that is a multipart file as a tuple containing metadata and a
Source
for streaming the file contents somewhere.Collects each body part that is a multipart file as a tuple containing metadata and a
Source
for streaming the file contents somewhere. If there is no such field the request will be rejected, if there are multiple file parts with the same name, the first one will be used and the subsequent ones ignored.- Definition Classes
- FileUploadDirectives
- def fileUploadAll(fieldName: String, inner: Function[List[Entry[FileInfo, Source[ByteString, Any]]], Route]): Route
Collects each body part that is a multipart file as a tuple containing metadata and a
Source
for streaming the file contents somewhere.Collects each body part that is a multipart file as a tuple containing metadata and a
Source
for streaming the file contents somewhere. If there is no such field the request will be rejected. Files are buffered into temporary files on disk so in-memory buffers don't overflow. The temporary files are cleaned up once materialized, or on exit if the stream is not consumed.- Definition Classes
- FileUploadDirectives
- def formField[T](t: Unmarshaller[String, T], name: String, inner: Function[T, Route]): Route
- Definition Classes
- FormFieldDirectives
- def formField(name: String, inner: Function[String, Route]): Route
- Definition Classes
- FormFieldDirectives
- def formFieldList(inner: Function[List[Entry[String, String]], Route]): Route
Extracts HTTP form fields from the request as a
.Map.Entry<String, String>>
Extracts HTTP form fields from the request as a
.Map.Entry<String, String>>
- Definition Classes
- FormFieldDirectives
- Annotations
- @CorrespondsTo()
- def formFieldList[T](t: Unmarshaller[String, T], name: String, inner: Function[List[T], Route]): Route
- Definition Classes
- FormFieldDirectives
- Annotations
- @CorrespondsTo()
- def formFieldList(name: String, inner: Function[List[String], Route]): Route
- Definition Classes
- FormFieldDirectives
- Annotations
- @CorrespondsTo()
- def formFieldMap(inner: Function[Map[String, String], Route]): Route
Extracts HTTP form fields from the request as a
.Map<String, String>
Extracts HTTP form fields from the request as a
.Map<String, String>
- Definition Classes
- FormFieldDirectives
- def formFieldMultiMap(inner: Function[Map[String, List[String]], Route]): Route
Extracts HTTP form fields from the request as a
.Map<String, List<String>>
Extracts HTTP form fields from the request as a
.Map<String, List<String>>
- Definition Classes
- FormFieldDirectives
- def formFieldOptional[T](t: Unmarshaller[String, T], name: String, inner: Function[Optional[T], Route]): Route
- Definition Classes
- FormFieldDirectives
- Annotations
- @CorrespondsTo()
- def formFieldOptional(name: String, inner: Function[Optional[String], Route]): Route
- Definition Classes
- FormFieldDirectives
- Annotations
- @CorrespondsTo()
- def get(inner: Supplier[Route]): Route
- Definition Classes
- MethodDirectives
- def getFromBrowseableDirectories(directories: String*): Route
Serves the content of the given directories as a file system browser, i.e.
Serves the content of the given directories as a file system browser, i.e. files are sent and directories served as browseable listings.
- Definition Classes
- FileAndResourceDirectives
- Annotations
- @varargs()
- def getFromBrowseableDirectories(directories: Iterable[String], resolver: ContentTypeResolver): Route
Serves the content of the given directories as a file system browser, i.e.
Serves the content of the given directories as a file system browser, i.e. files are sent and directories served as browseable listings.
- Definition Classes
- FileAndResourceDirectives
- def getFromBrowseableDirectories(directories: Iterable[String], renderer: DirectoryRenderer): Route
Serves the content of the given directories as a file system browser, i.e.
Serves the content of the given directories as a file system browser, i.e. files are sent and directories served as browseable listings.
- Definition Classes
- FileAndResourceDirectives
- def getFromBrowseableDirectories(directories: Iterable[String], renderer: DirectoryRenderer, resolver: ContentTypeResolver): Route
Serves the content of the given directories as a file system browser, i.e.
Serves the content of the given directories as a file system browser, i.e. files are sent and directories served as browseable listings.
- Definition Classes
- FileAndResourceDirectives
- def getFromBrowseableDirectory(directory: String): Route
Same as
getFromBrowseableDirectories
with only one directory.Same as
getFromBrowseableDirectories
with only one directory.- Definition Classes
- FileAndResourceDirectives
- def getFromBrowseableDirectory(directory: String, resolver: ContentTypeResolver): Route
Same as
getFromBrowseableDirectories
with only one directory.Same as
getFromBrowseableDirectories
with only one directory.- Definition Classes
- FileAndResourceDirectives
- def getFromBrowseableDirectory(directory: String, renderer: DirectoryRenderer): Route
Same as
getFromBrowseableDirectories
with only one directory.Same as
getFromBrowseableDirectories
with only one directory.- Definition Classes
- FileAndResourceDirectives
- def getFromBrowseableDirectory(directory: String, renderer: DirectoryRenderer, resolver: ContentTypeResolver): Route
Same as
getFromBrowseableDirectories
with only one directory.Same as
getFromBrowseableDirectories
with only one directory.- Definition Classes
- FileAndResourceDirectives
- def getFromDirectory(directoryPath: String, resolver: ContentTypeResolver): Route
Completes GET requests with the content of a file underneath the given directory, using the given content-type resolver.
Completes GET requests with the content of a file underneath the given directory, using the given content-type resolver. If the file cannot be read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromDirectory(directoryPath: String): Route
Completes GET requests with the content of a file underneath the given directory, using the default content-type resolver.
Completes GET requests with the content of a file underneath the given directory, using the default content-type resolver. If the file cannot be read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromFile(file: String, resolver: ContentTypeResolver): Route
Completes GET requests with the content of the given file, resolving the content type using the given resolver.
Completes GET requests with the content of the given file, resolving the content type using the given resolver. If the file cannot be found or read the request is rejected.
- Definition Classes
- FileAndResourceDirectives
- def getFromFile(file: String): Route
Completes GET requests with the content of the given file, resolving the content type using the default resolver.
Completes GET requests with the content of the given file, resolving the content type using the default resolver. If the file cannot be found or read the request is rejected.
- Definition Classes
- FileAndResourceDirectives
- def getFromFile(file: File, contentType: ContentType): Route
Completes GET requests with the content of the given file, using the content type.
Completes GET requests with the content of the given file, using the content type. If the file cannot be found or read the request is rejected.
- Definition Classes
- FileAndResourceDirectives
- def getFromFile(file: File, resolver: ContentTypeResolver): Route
Completes GET requests with the content of the given file, resolving the content type using the given resolver.
Completes GET requests with the content of the given file, resolving the content type using the given resolver. If the file cannot be found or read the request is rejected.
- Definition Classes
- FileAndResourceDirectives
- def getFromFile(file: File): Route
Completes GET requests with the content of the given file, resolving the content type using the default resolver.
Completes GET requests with the content of the given file, resolving the content type using the default resolver. If the file cannot be found or read the request is rejected.
- Definition Classes
- FileAndResourceDirectives
- def getFromResource(path: String, contentType: ContentType, classLoader: ClassLoader): Route
Completes GET requests with the content of the given resource loaded from the given ClassLoader, with the given content type.
Completes GET requests with the content of the given resource loaded from the given ClassLoader, with the given content type. If the resource cannot be found or read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromResource(path: String, contentType: ContentType): Route
Completes GET requests with the content of the given resource loaded from the default ClassLoader, with the given content type.
Completes GET requests with the content of the given resource loaded from the default ClassLoader, with the given content type. If the resource cannot be found or read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromResource(path: String, resolver: ContentTypeResolver): Route
Completes GET requests with the content of the given resource loaded from the default ClassLoader, using the given content type resolver.
Completes GET requests with the content of the given resource loaded from the default ClassLoader, using the given content type resolver. If the resource cannot be found or read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromResource(path: String): Route
Completes GET requests with the content of the given resource loaded from the default ClassLoader, using the default content type resolver.
Completes GET requests with the content of the given resource loaded from the default ClassLoader, using the default content type resolver. If the resource cannot be found or read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromResourceDirectory(directoryName: String, resolver: ContentTypeResolver, classLoader: ClassLoader): Route
Same as "getFromDirectory" except that the file is not fetched from the file system but rather from a "resource directory", using the given ClassLoader, resolving content type using the given content type resolver.
Same as "getFromDirectory" except that the file is not fetched from the file system but rather from a "resource directory", using the given ClassLoader, resolving content type using the given content type resolver.
If the requested resource is itself a directory or cannot be found or read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromResourceDirectory(directoryName: String, resolver: ContentTypeResolver): Route
Same as "getFromDirectory" except that the file is not fetched from the file system but rather from a "resource directory", using the default ClassLoader, resolving content type using the given content type resolver.
Same as "getFromDirectory" except that the file is not fetched from the file system but rather from a "resource directory", using the default ClassLoader, resolving content type using the given content type resolver.
If the requested resource is itself a directory or cannot be found or read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromResourceDirectory(directoryName: String, classLoader: ClassLoader): Route
Same as "getFromDirectory" except that the file is not fetched from the file system but rather from a "resource directory", using the given ClassLoader, resolving content type using the default content type resolver.
Same as "getFromDirectory" except that the file is not fetched from the file system but rather from a "resource directory", using the given ClassLoader, resolving content type using the default content type resolver.
If the requested resource is itself a directory or cannot be found or read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def getFromResourceDirectory(directoryName: String): Route
Same as "getFromDirectory" except that the file is not fetched from the file system but rather from a "resource directory", using the default ClassLoader, resolving content type using the default content type resolver.
Same as "getFromDirectory" except that the file is not fetched from the file system but rather from a "resource directory", using the default ClassLoader, resolving content type using the default content type resolver.
If the requested resource is itself a directory or cannot be found or read the Route rejects the request.
- Definition Classes
- FileAndResourceDirectives
- def handle(handler: Function[HttpRequest, CompletionStage[HttpResponse]]): Route
Handle the request using a function.
Handle the request using a function.
- Definition Classes
- RouteDirectives
- def handleExceptions(handler: ExceptionHandler, inner: Supplier[Route]): RouteAdapter
Transforms exceptions thrown during evaluation of its inner route using the given akka.http.javadsl.server.ExceptionHandler.
Transforms exceptions thrown during evaluation of its inner route using the given akka.http.javadsl.server.ExceptionHandler.
- Definition Classes
- ExecutionDirectives
- def handleRejections(handler: RejectionHandler, inner: Supplier[Route]): RouteAdapter
Transforms rejections produced by its inner route using the given akka.http.scaladsl.server.RejectionHandler.
Transforms rejections produced by its inner route using the given akka.http.scaladsl.server.RejectionHandler.
- Definition Classes
- ExecutionDirectives
- def handleSync(handler: Function[HttpRequest, HttpResponse]): Route
Handle the request using a function.
Handle the request using a function.
- Definition Classes
- RouteDirectives
- def handleWebSocketMessages[T](handler: Flow[Message, Message, T]): Route
Handles WebSocket requests with the given handler and rejects other requests with an ExpectedWebSocketRequestRejection.
Handles WebSocket requests with the given handler and rejects other requests with an ExpectedWebSocketRequestRejection.
- Definition Classes
- WebSocketDirectives
- def handleWebSocketMessagesForOptionalProtocol[T](handler: Flow[Message, Message, T], subprotocol: Optional[String]): Route
Handles WebSocket requests with the given handler and rejects other requests with an ExpectedWebSocketRequestRejection.
Handles WebSocket requests with the given handler and rejects other requests with an ExpectedWebSocketRequestRejection.
If the
subprotocol
parameter is None any WebSocket request is accepted. If thesubprotocol
parameter isSome(protocol)
a WebSocket request is only accepted if the list of subprotocols supported by the client (as announced in the WebSocket request) containsprotocol
. If the client did not offer the protocol in question the request is rejected with an UnsupportedWebSocketSubprotocolRejection rejection.To support several subprotocols you may chain several
handleWebSocketMessagesForOptionalProtocol
routes.- Definition Classes
- WebSocketDirectives
- def handleWebSocketMessagesForProtocol[T](handler: Flow[Message, Message, T], subprotocol: String): Route
Handles WebSocket requests with the given handler if the given subprotocol is offered in the request and rejects other requests with an ExpectedWebSocketRequestRejection or an UnsupportedWebSocketSubprotocolRejection.
Handles WebSocket requests with the given handler if the given subprotocol is offered in the request and rejects other requests with an ExpectedWebSocketRequestRejection or an UnsupportedWebSocketSubprotocolRejection.
- Definition Classes
- WebSocketDirectives
- def handleWith[T, R](unmarshaller: Unmarshaller[_ >: HttpEntity, T], marshaller: Marshaller[R, _ <: HttpResponse], inner: Function[T, R]): Route
Completes the request using the given function.
Completes the request using the given function. The input to the function is produced with the in-scope entity unmarshaller and the result value of the function is marshalled with the in-scope marshaller.
- Definition Classes
- MarshallingDirectives
- def head(inner: Supplier[Route]): Route
- Definition Classes
- MethodDirectives
- def headerValue[T](f: Function[HttpHeader, Optional[T]], inner: Function[T, Route]): RouteAdapter
Extracts an HTTP header value using the given function.
Extracts an HTTP header value using the given function. If the function result is undefined for all headers the request is rejected with an empty rejection set. If the given function throws an exception the request is rejected with a akka.http.javadsl.server.MalformedHeaderRejection.
- Definition Classes
- HeaderDirectives
- def headerValueByName(headerName: String, inner: Function[String, Route]): RouteAdapter
Extracts the value of the first HTTP request header with the given name.
Extracts the value of the first HTTP request header with the given name. If no header with a matching name is found the request is rejected with a akka.http.javadsl.server.MissingHeaderRejection.
- Definition Classes
- HeaderDirectives
- def headerValueByType[T <: HttpHeader](t: Class[T], inner: Function[T, Route]): RouteAdapter
Extracts the first HTTP request header of the given type.
Extracts the first HTTP request header of the given type. If no header with a matching type is found the request is rejected with a akka.http.javadsl.server.MissingHeaderRejection.
- Definition Classes
- HeaderDirectives
- def headerValuePF[T](pf: PartialFunction[HttpHeader, T], inner: Function[T, Route]): RouteAdapter
Extracts an HTTP header value using the given partial function.
Extracts an HTTP header value using the given partial function. If the function is undefined for all headers the request is rejected with an empty rejection set.
- Definition Classes
- HeaderDirectives
- def host(regex: Pattern, inner: Function[String, Route]): Route
Rejects all requests with a host name that doesn't have a prefix matching the given regular expression.
Rejects all requests with a host name that doesn't have a prefix matching the given regular expression. For all matching requests the prefix string matching the regex is extracted and passed to the inner route. If the regex contains a capturing group only the string matched by this group is extracted. If the regex contains more than one capturing group an IllegalArgumentException is thrown.
- Definition Classes
- HostDirectives
- def host(predicate: Predicate[String], inner: Supplier[Route]): Route
Rejects all requests for whose host name the given predicate function returns false.
Rejects all requests for whose host name the given predicate function returns false.
- Definition Classes
- HostDirectives
- def host(hostName: String, inner: Supplier[Route]): Route
Rejects all requests with a host name different from the given one.
Rejects all requests with a host name different from the given one.
- Definition Classes
- HostDirectives
- def host(hostNames: Iterable[String], inner: Supplier[Route]): Route
Rejects all requests with a host name different from the given ones.
Rejects all requests with a host name different from the given ones.
- Definition Classes
- HostDirectives
- def ignoreTrailingSlash(inner: Supplier[Route]): Route
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.
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.
- Definition Classes
- PathDirectives
- def listDirectoryContents(directoryRenderer: DirectoryRenderer, directories: String*): Route
Completes GET requests with a unified listing of the contents of all given directories.
Completes GET requests with a unified listing of the contents of all given directories. The actual rendering of the directory contents is performed by the in-scope
Marshaller[DirectoryListing]
.- Definition Classes
- FileAndResourceDirectives
- Annotations
- @varargs()
- def listDirectoryContents(directories: String*): Route
Completes GET requests with a unified listing of the contents of all given directories.
Completes GET requests with a unified listing of the contents of all given directories. The actual rendering of the directory contents is performed by the in-scope
Marshaller[DirectoryListing]
.- Definition Classes
- FileAndResourceDirectives
- Annotations
- @varargs()
- def logRequest(show: Function[HttpRequest, LogEntry], inner: Supplier[Route]): Route
Produces a log entry for every incoming request.
Produces a log entry for every incoming request.
- Definition Classes
- DebuggingDirectives
- def logRequest(marker: String, level: LogLevel, inner: Supplier[Route]): Route
Produces a log entry for every incoming request.
Produces a log entry for every incoming request.
- level
One of the log levels defined in akka.event.Logging
- Definition Classes
- DebuggingDirectives
- def logRequest(marker: String, inner: Supplier[Route]): Route
Produces a log entry for every incoming request.
Produces a log entry for every incoming request.
- Definition Classes
- DebuggingDirectives
- def logRequestResult(showSuccess: BiFunction[HttpRequest, HttpResponse, LogEntry], showRejection: BiFunction[HttpRequest, List[Rejection], LogEntry], inner: Supplier[Route]): RouteAdapter
Produces a log entry for every request/response combination.
Produces a log entry for every request/response combination.
- showSuccess
Function invoked when the route result was successful and yielded an HTTP response
- showRejection
Function invoked when the route yielded a rejection
- Definition Classes
- DebuggingDirectives
- def logRequestResultOptional(showSuccess: BiFunction[HttpRequest, HttpResponse, Optional[LogEntry]], showRejection: BiFunction[HttpRequest, List[Rejection], Optional[LogEntry]], inner: Supplier[Route]): RouteAdapter
Optionally produces a log entry for every request/response combination.
Optionally produces a log entry for every request/response combination.
- showSuccess
Function invoked when the route result was successful and yielded an HTTP response
- showRejection
Function invoked when the route yielded a rejection
- Definition Classes
- DebuggingDirectives
- Annotations
- @CorrespondsTo()
- def logResult(showSuccess: Function[HttpResponse, LogEntry], showRejection: Function[List[Rejection], LogEntry], inner: Supplier[Route]): RouteAdapter
Produces a log entry for every route result.
Produces a log entry for every route result.
- showSuccess
Function invoked when the route result was successful and yielded an HTTP response
- showRejection
Function invoked when the route yielded a rejection
- Definition Classes
- DebuggingDirectives
- def logResult(marker: String, level: LogLevel, inner: Supplier[Route]): Route
Produces a log entry for every route result.
Produces a log entry for every route result.
- level
One of the log levels defined in akka.event.Logging
- Definition Classes
- DebuggingDirectives
- def logResult(marker: String, inner: Supplier[Route]): Route
Produces a log entry for every route result.
Produces a log entry for every route result.
- Definition Classes
- DebuggingDirectives
- def mapInnerRoute(f: Function[Route, Route], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapRejections(f: Function[List[Rejection], List[Rejection]], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapRequest(f: Function[HttpRequest, HttpRequest], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapRequestContext(f: Function[RequestContext, RequestContext], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapResponse(f: Function[HttpResponse, HttpResponse], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapResponseEntity(f: Function[ResponseEntity, ResponseEntity], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapResponseHeaders(f: Function[List[HttpHeader], List[HttpHeader]], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapRouteResult(f: Function[RouteResult, RouteResult], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapRouteResultFuture(f: Function[CompletionStage[RouteResult], CompletionStage[RouteResult]], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapRouteResultPF(f: PartialFunction[RouteResult, RouteResult], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapRouteResultWith(f: Function[RouteResult, CompletionStage[RouteResult]], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapRouteResultWithPF(f: PartialFunction[RouteResult, CompletionStage[RouteResult]], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def mapSettings(f: Function[RoutingSettings, RoutingSettings], inner: Supplier[Route]): Route
Runs the inner route with settings mapped by the given function.
Runs the inner route with settings mapped by the given function.
- Definition Classes
- BasicDirectives
- def mapUnmatchedPath(f: Function[String, String], inner: Supplier[Route]): Route
Transforms the unmatchedPath of the RequestContext using the given function.
Transforms the unmatchedPath of the RequestContext using the given function.
- Definition Classes
- BasicDirectives
- def method(method: HttpMethod, inner: Supplier[Route]): Route
- Definition Classes
- MethodDirectives
- def optionalAttribute[T](key: AttributeKey[T], inner: Function[Optional[T], Route]): RouteAdapter
Extracts the value of the optional request attribute with the given key.
Extracts the value of the optional request attribute with the given key.
- Definition Classes
- AttributeDirectives
- def optionalCookie(name: String, inner: Function[Optional[HttpCookiePair], Route]): Route
Extracts the HttpCookiePair with the given name as an
Option[HttpCookiePair]
.Extracts the HttpCookiePair with the given name as an
Option[HttpCookiePair]
. If the cookie is not present a value ofNone
is extracted.- Definition Classes
- CookieDirectives
- def optionalHeaderValue[T](f: Function[HttpHeader, Optional[T]], inner: Function[Optional[T], Route]): RouteAdapter
Extracts an optional HTTP header value using the given function.
Extracts an optional HTTP header value using the given function. If the given function throws an exception the request is rejected with a akka.http.javadsl.server.MalformedHeaderRejection.
- Definition Classes
- HeaderDirectives
- def optionalHeaderValueByName(headerName: String, inner: Function[Optional[String], Route]): RouteAdapter
Extracts the value of the optional HTTP request header with the given name.
Extracts the value of the optional HTTP request header with the given name.
- Definition Classes
- HeaderDirectives
- def optionalHeaderValueByType[T <: HttpHeader](t: Class[T], inner: Function[Optional[T], Route]): RouteAdapter
FIXME: WARNING: Custom headers don't work yet with this directive!
FIXME: WARNING: Custom headers don't work yet with this directive!
Extract the header value of the optional HTTP request header with the given type.
- Definition Classes
- HeaderDirectives
- def optionalHeaderValuePF[T](pf: PartialFunction[HttpHeader, T], inner: Function[Optional[T], Route]): RouteAdapter
Extracts an optional HTTP header value using the given partial function.
Extracts an optional HTTP header value using the given partial function. If the given function throws an exception the request is rejected with a akka.http.javadsl.server.MalformedHeaderRejection.
- Definition Classes
- HeaderDirectives
- def options(inner: Supplier[Route]): Route
- Definition Classes
- MethodDirectives
- def overrideMethodWithParameter(paramName: String, inner: Supplier[Route]): Route
Changes the HTTP method of the request to the value of the specified query string parameter.
Changes the HTTP method of the request to the value of the specified query string parameter. If the query string parameter is not specified this directive has no effect. If the query string is specified as something that is not a HTTP method, then this directive completes the request with a
501 Not Implemented
response.This directive is useful for:
- Use in combination with JSONP (JSONP only supports GET)
- Supporting older browsers that lack support for certain HTTP methods. E.g. IE8 does not support PATCH
- Definition Classes
- MethodDirectives
- def parameter[T](t: Unmarshaller[String, T], name: String, inner: Function[T, Route]): Route
- Definition Classes
- ParameterDirectives
- def parameter(name: String, inner: Function[String, Route]): Route
- Definition Classes
- ParameterDirectives
- def parameterList(inner: Function[List[Entry[String, String]], Route]): Route
- Definition Classes
- ParameterDirectives
- Annotations
- @CorrespondsTo()
- def parameterList[T](t: Unmarshaller[String, T], name: String, inner: Function[List[T], Route]): Route
- Definition Classes
- ParameterDirectives
- Annotations
- @CorrespondsTo()
- def parameterList(name: String, inner: Function[List[String], Route]): Route
- Definition Classes
- ParameterDirectives
- Annotations
- @CorrespondsTo()
- def parameterMap(inner: Function[Map[String, String], Route]): Route
- Definition Classes
- ParameterDirectives
- def parameterMultiMap(inner: Function[Map[String, List[String]], Route]): Route
- Definition Classes
- ParameterDirectives
- def parameterOptional[T](t: Unmarshaller[String, T], name: String, inner: Function[Optional[T], Route]): Route
- Definition Classes
- ParameterDirectives
- Annotations
- @CorrespondsTo()
- def parameterOptional(name: String, inner: Function[Optional[String], Route]): Route
- Definition Classes
- ParameterDirectives
- Annotations
- @CorrespondsTo()
- def parameterOrDefault[T](t: Unmarshaller[String, T], defaultValue: T, name: String, inner: Function[T, Route]): Route
- Definition Classes
- ParameterDirectives
- Annotations
- @CorrespondsTo()
- def parameterRequiredValue[T](t: Unmarshaller[String, T], requiredValue: T, name: String, inner: Supplier[Route]): Route
- Definition Classes
- ParameterDirectives
- Annotations
- @CorrespondsTo()
- def pass(inner: Supplier[Route]): Route
Always passes the request on to its inner route (i.e.
Always passes the request on to its inner route (i.e. does nothing with the request or the response).
- Definition Classes
- BasicDirectives
- def patch(inner: Supplier[Route]): Route
- Definition Classes
- MethodDirectives
- def path[T](t: Unmarshaller[String, T], inner: Function[T, Route]): Route
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.
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.
- Definition Classes
- PathDirectives
- def path[T1, T2](p: PathMatcher2[T1, T2], inner: BiFunction[T1, T2, Route]): Route
- Definition Classes
- PathDirectives
- def path[T](p: PathMatcher1[T], inner: Function[T, Route]): Route
- Definition Classes
- PathDirectives
- def path(p: PathMatcher0, inner: Supplier[Route]): Route
Applies the given PathMatcher0 to the remaining unmatched path after consuming a leading slash.
Applies the given 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.
- Definition Classes
- PathDirectives
- def path(inner: Function[String, Route]): Route
- Definition Classes
- PathDirectives
- def path(segment: String, inner: Supplier[Route]): Route
Matches a prefix to the remaining unmatched path after consuming a leading slash.
Matches a prefix to the remaining unmatched path after consuming a leading slash. The matcher has to match the remaining path completely. If matched the value matching the prefix is extracted on the directive level.
- Definition Classes
- PathDirectives
- def pathEnd(inner: Supplier[Route]): Route
Rejects the request if the unmatchedPath of the akka.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.
Rejects the request if the unmatchedPath of the akka.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.
- Definition Classes
- PathDirectives
- def pathEndOrSingleSlash(inner: Supplier[Route]): Route
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.
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.
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 or #redirectToNoTrailingSlashIfPresent 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
- Definition Classes
- PathDirectives
- def pathPrefix[T](t: Unmarshaller[String, T], inner: Function[T, Route]): Route
Consumes a leading slash and extracts the next path segment, unmarshalling it and passing the result to the inner function.
Consumes a leading slash and extracts the next path segment, unmarshalling it and passing the result to the inner function.
- Definition Classes
- PathDirectives
- def pathPrefix[T1, T2](p: PathMatcher2[T1, T2], inner: BiFunction[T1, T2, Route]): Route
- Definition Classes
- PathDirectives
- def pathPrefix[T](p: PathMatcher1[T], inner: Function[T, Route]): Route
- Definition Classes
- PathDirectives
- def pathPrefix(p: PathMatcher0, inner: Supplier[Route]): Route
Applies the given PathMatcher0 to the remaining unmatched path after consuming a leading slash.
Applies the given 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.
- Definition Classes
- PathDirectives
- def pathPrefix(inner: Function[String, Route]): Route
- Definition Classes
- PathDirectives
- def pathPrefix(segment: String, inner: Supplier[Route]): Route
Matches a prefix to the remaining unmatched path after consuming a leading slash.
Matches a prefix 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 matching the prefix is extracted on the directive level.
- Definition Classes
- PathDirectives
- def pathPrefixTest[T1, T2](pm: PathMatcher2[T1, T2], inner: BiFunction[T1, T2, Route]): Route
- Definition Classes
- PathDirectives
- def pathPrefixTest[T1](pm: PathMatcher1[T1], inner: Function[T1, Route]): Route
- Definition Classes
- PathDirectives
- def pathPrefixTest(pm: PathMatcher0, inner: Supplier[Route]): Route
- Definition Classes
- PathDirectives
- def pathPrefixTest(segment: String, inner: Supplier[Route]): Route
Checks whether the unmatchedPath of the akka.http.javadsl.server.RequestContext has a prefix matched by the given PathMatcher.
Checks whether the unmatchedPath of the akka.http.javadsl.server.RequestContext has a prefix matched by the given PathMatcher. In analogy to the
pathPrefix
directive a leading slash is implied.- Definition Classes
- PathDirectives
- def pathSingleSlash(inner: Supplier[Route]): Route
Only passes on the request to its inner route if the request path consists of exactly one remaining slash.
Only passes on the request to its inner route if the request path consists of exactly one remaining slash.
- Definition Classes
- PathDirectives
- def pathSuffix[T1, T2](pm: PathMatcher2[T1, T2], inner: BiFunction[T1, T2, Route]): Route
- Definition Classes
- PathDirectives
- def pathSuffix[T1](pm: PathMatcher1[T1], inner: Function[T1, Route]): Route
- Definition Classes
- PathDirectives
- def pathSuffix(pm: PathMatcher0, inner: Supplier[Route]): Route
- Definition Classes
- PathDirectives
- def pathSuffix(segment: String, inner: Supplier[Route]): Route
Applies the given akka.http.scaladsl.server.PathMatcher to a suffix of the remaining unmatchedPath of the akka.http.javadsl.server.RequestContext.
Applies the given akka.http.scaladsl.server.PathMatcher to a suffix of the remaining unmatchedPath of the akka.http.javadsl.server.RequestContext. If matched the value extracted by the akka.http.javadsl.server.PathMatcher0 is extracted and the matched parts of the path are consumed. Note that, for efficiency reasons, the given akka.http.javadsl.server.PathMatcher0 must match the desired suffix in reversed-segment order, i.e.
pathSuffix("baz" / "bar")
would match/foo/bar/baz
!- Definition Classes
- PathDirectives
- def pathSuffixTest[T1, T2](pm: PathMatcher2[T1, T2], inner: BiFunction[T1, T2, Route]): Route
- Definition Classes
- PathDirectives
- def pathSuffixTest[T1](pm: PathMatcher1[T1], inner: Function[T1, Route]): Route
- Definition Classes
- PathDirectives
- def pathSuffixTest(pm: PathMatcher0, inner: Supplier[Route]): Route
- Definition Classes
- PathDirectives
- def pathSuffixTest(segment: String, inner: Supplier[Route]): Route
Checks whether the unmatchedPath of the akka.http.javadsl.server.RequestContext has a suffix matched by the given PathMatcher.
Checks whether the unmatchedPath of the akka.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
!- Definition Classes
- PathDirectives
- def post(inner: Supplier[Route]): Route
- Definition Classes
- MethodDirectives
- def provide[T](t: T, inner: Function[T, Route]): Route
Injects the given value into a directive.
Injects the given value into a directive.
- Definition Classes
- BasicDirectives
- def put(inner: Supplier[Route]): Route
- Definition Classes
- MethodDirectives
- def rawPathPrefix[T1, T2](pm: PathMatcher2[T1, T2], inner: BiFunction[T1, T2, Route]): Route
- Definition Classes
- PathDirectives
- def rawPathPrefix[T1](pm: PathMatcher1[T1], inner: Function[T1, Route]): Route
- Definition Classes
- PathDirectives
- def rawPathPrefix(pm: PathMatcher0, inner: Supplier[Route]): Route
- Definition Classes
- PathDirectives
- def rawPathPrefix(segment: String, inner: Supplier[Route]): Route
Applies the given matcher directly to a prefix of the unmatched path of the akka.http.javadsl.server.RequestContext (i.e.
Applies the given matcher directly to a prefix of the unmatched path of the akka.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.
- Definition Classes
- PathDirectives
- def rawPathPrefixTest[T1, T2](pm: PathMatcher2[T1, T2], inner: BiFunction[T1, T2, Route]): Route
- Definition Classes
- PathDirectives
- def rawPathPrefixTest[T1](pm: PathMatcher1[T1], inner: Function[T1, Route]): Route
- Definition Classes
- PathDirectives
- def rawPathPrefixTest(pm: PathMatcher0, inner: Supplier[Route]): Route
- Definition Classes
- PathDirectives
- def rawPathPrefixTest(segment: String, inner: Supplier[Route]): Route
Checks whether the unmatchedPath of the akka.http.javadsl.server.RequestContext has a prefix matched by the given PathMatcher.
Checks whether the unmatchedPath of the akka.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".- Definition Classes
- PathDirectives
- def recoverRejections(f: Function[Iterable[Rejection], RouteResult], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def recoverRejectionsWith(f: Function[Iterable[Rejection], CompletionStage[RouteResult]], inner: Supplier[Route]): Route
- Definition Classes
- BasicDirectives
- def redirect(uri: Uri, redirectionType: StatusCode): Route
Completes the request with redirection response of the given type to the given URI.
Completes the request with redirection response of the given type to the given URI.
- redirectionType
A status code from StatusCodes, which must be a redirection type.
- Definition Classes
- RouteDirectives
- def redirectToNoTrailingSlashIfPresent(redirectionType: StatusCode, inner: Supplier[Route]): Route
If the request path ends with a slash, redirect to the same uri without trailing slash in the path.
If the request path ends with a slash, redirect to the same uri without trailing slash in the path.
Caveat: #pathSingleSlash directive will not match inside of this directive.
- redirectionType
A status code from StatusCodes, which must be a redirection type.
- Definition Classes
- PathDirectives
- def redirectToTrailingSlashIfMissing(redirectionType: StatusCode, inner: Supplier[Route]): Route
If the request path doesn't end with a slash, redirect to the same uri with trailing slash in the path.
If the request path doesn't end with a slash, redirect to the same uri with trailing slash in the path.
Caveat: #path without trailing slash and #pathEnd directives will not match inside of this directive.
- redirectionType
A status code from StatusCodes, which must be a redirection type.
- Definition Classes
- PathDirectives
- def reject(): Route
Rejects the request with an empty rejection (usually used for "no directive matched").
Rejects the request with an empty rejection (usually used for "no directive matched").
- Definition Classes
- RouteDirectives
- def reject(rejection: Rejection, rejections: Rejection*): Route
Rejects the request with the given rejections, or with an empty set of rejections if no rejections are given.
Rejects the request with the given rejections, or with an empty set of rejections if no rejections are given.
- Definition Classes
- RouteDirectives
- Annotations
- @varargs()
- def rejectEmptyResponse(inner: Supplier[Route]): Route
Converts responses with an empty entity into (empty) rejections.
Converts responses with an empty entity into (empty) rejections. This way you can, for example, have the marshalling of a None option be treated as if the request could not be matched.
- Definition Classes
- MiscDirectives
- def request[T](unmarshaller: Unmarshaller[_ >: HttpRequest, T], inner: Function[T, Route]): Route
Unmarshalls the request using the given unmarshaller, and passes the result to [inner].
Unmarshalls the request using the given unmarshaller, and passes the result to [inner]. If there is a problem with unmarshalling the request is rejected with the akka.http.javadsl.server.Rejection produced by the unmarshaller.
- Definition Classes
- MarshallingDirectives
- def requestEncodedWith(encoding: HttpEncoding, inner: Supplier[Route]): Route
Rejects the request with an UnsupportedRequestEncodingRejection if its encoding doesn't match the given one.
Rejects the request with an UnsupportedRequestEncodingRejection if its encoding doesn't match the given one.
- Definition Classes
- CodingDirectives
- def requestEntityEmpty(inner: Supplier[Route]): Route
Rejects if the request entity is non-empty.
Rejects if the request entity is non-empty.
- Definition Classes
- MiscDirectives
- def requestEntityPresent(inner: Supplier[Route]): Route
Rejects with a RequestEntityExpectedRejection if the request entity is empty.
Rejects with a RequestEntityExpectedRejection if the request entity is empty. Non-empty requests are passed on unchanged to the inner route.
- Definition Classes
- MiscDirectives
- def requireClientCertificateIdentity(cnRegex: String, inner: Supplier[Route]): Route
Require the client to be authenticated, if not reject the request with a akka.http.javadsl.server.TlsClientUnverifiedRejection, also require the one of the client certificate
ip
ordns
SANs (Subject Alternative Name) or if non exists, the CN (Common Name) to match the given regular expression, if not the request is rejected with a akka.http.javadsl.server.TlsClientIdentityRejectionRequire the client to be authenticated, if not reject the request with a akka.http.javadsl.server.TlsClientUnverifiedRejection, also require the one of the client certificate
ip
ordns
SANs (Subject Alternative Name) or if non exists, the CN (Common Name) to match the given regular expression, if not the request is rejected with a akka.http.javadsl.server.TlsClientIdentityRejectionUsing this directives requires tls-session info parsing to be enabled:
akka.http.server.parsing.tls-session-info-header = on
The javax.net.ssl.SSLEngine for the server needs to be set up with
setWantClientAuth(true)
orsetNeedClientAuth(true)
or else every request will be failed.- Definition Classes
- TlsDirectives
- def respondWithDefaultHeader(responseHeader: HttpHeader, inner: Supplier[Route]): Route
Adds the given response header to all HTTP responses of its inner Route, if the response from the inner Route doesn't already contain a header with the same name.
Adds the given response header to all HTTP responses of its inner Route, if the response from the inner Route doesn't already contain a header with the same name.
- Definition Classes
- RespondWithDirectives
- def respondWithDefaultHeaders(responseHeaders: Iterable[HttpHeader], inner: Supplier[Route]): Route
Adds the given response headers to all HTTP responses of its inner Route, if a header already exists it is not added again.
Adds the given response headers to all HTTP responses of its inner Route, if a header already exists it is not added again.
- Definition Classes
- RespondWithDirectives
- def respondWithHeader(responseHeader: HttpHeader, inner: Supplier[Route]): Route
Unconditionally adds the given response header to all HTTP responses of its inner Route.
Unconditionally adds the given response header to all HTTP responses of its inner Route.
- Definition Classes
- RespondWithDirectives
- def respondWithHeaders(responseHeaders: Iterable[HttpHeader], inner: Supplier[Route]): Route
Unconditionally adds the given response headers to all HTTP responses of its inner Route.
Unconditionally adds the given response headers to all HTTP responses of its inner Route.
- Definition Classes
- RespondWithDirectives
- def responseEncodingAccepted(encoding: HttpEncoding, inner: Supplier[Route]): Route
Rejects the request with an UnacceptedResponseEncodingRejection if the given response encoding is not accepted by the client.
Rejects the request with an UnacceptedResponseEncodingRejection if the given response encoding is not accepted by the client.
- Definition Classes
- CodingDirectives
- def runRoute(route: Route, request: HttpRequest, defaultHostInfo: DefaultHostInfo): TestRouteResult
- def runRoute(route: Route, request: HttpRequest): TestRouteResult
- def runRouteClientServer(route: Route, request: HttpRequest): TestRouteResult
- def runRouteUnSealed(route: Route, request: HttpRequest, defaultHostInfo: DefaultHostInfo): TestRouteResult
- def runRouteUnSealed(route: Route, request: HttpRequest): TestRouteResult
- def scheme(name: String, inner: Supplier[Route]): Route
Rejects all requests whose Uri scheme does not match the given one.
Rejects all requests whose Uri scheme does not match the given one.
- Definition Classes
- SchemeDirectives
- def selectPreferredLanguage(languages: Iterable[Language], inner: Function[Language, Route]): Route
Inspects the request's
Accept-Language
header and determines, which of the given language alternatives is preferred by the client.Inspects the request's
Accept-Language
header and determines, which of the given language alternatives is preferred by the client. (See http://tools.ietf.org/html/rfc7231#section-5.3.5 for more details on the negotiation logic.) If there are several best language alternatives that the client has equal preference for (even if this preference is zero!) the order of the arguments is used as a tie breaker (First one wins).If [languages] is empty, the route is rejected.
- Definition Classes
- MiscDirectives
- def setCookie(cookies: Iterable[HttpCookie], inner: Supplier[Route]): Route
Adds a Set-Cookie response header with the given cookies.
Adds a Set-Cookie response header with the given cookies.
- Definition Classes
- CookieDirectives
- def setCookie(cookie: HttpCookie, inner: Supplier[Route]): Route
Adds a Set-Cookie response header with the given cookie.
Adds a Set-Cookie response header with the given cookie.
- Definition Classes
- CookieDirectives
- def storeUploadedFile(fieldName: String, destFn: Function[FileInfo, File], inner: BiFunction[FileInfo, File, Route]): Route
Streams the bytes of the file submitted using multipart with the given file name into a designated file on disk.
Streams the bytes of the file submitted using multipart with the given file name into a designated file on disk. If there is an error writing to disk the request will be failed with the thrown exception, if there is no such field the request will be rejected, if there are multiple file parts with the same name, the first one will be used and the subsequent ones ignored.
- Definition Classes
- FileUploadDirectives
- def storeUploadedFiles(fieldName: String, destFn: Function[FileInfo, File], inner: Function[List[Entry[FileInfo, File]], Route]): Route
Streams the bytes of the file submitted using multipart with the given field name into designated files on disk.
Streams the bytes of the file submitted using multipart with the given field name into designated files on disk. If there is an error writing to disk the request will be failed with the thrown exception, if there is no such field the request will be rejected. Stored files are cleaned up on exit but not on failure.
- Definition Classes
- FileUploadDirectives
- def testRoute(first: Route, others: Route*): TestRoute
Wraps a list of route alternatives with testing support.
Wraps a list of route alternatives with testing support.
- Annotations
- @varargs()
- def toStrictEntity(timeout: FiniteDuration, maxBytes: Long, inner: Supplier[Route]): Route
WARNING: This will read the entire request entity into memory and effectively disable streaming.
WARNING: This will read the entire request entity into memory and effectively disable streaming.
To help protect against excessive memory use, the request will be aborted if the request is larger than allowed by the
akka.http.parsing.max-to-strict-bytes
configuration setting.Extracts the akka.http.javadsl.server.RequestContext itself with the strict HTTP entity, or fails the route if unable to drain the entire request body within the timeout.
- timeout
The directive is failed if the stream isn't completed after the given timeout.
- Definition Classes
- BasicDirectives
- def toStrictEntity(timeout: FiniteDuration, inner: Supplier[Route]): Route
WARNING: This will read the entire request entity into memory and effectively disable streaming.
WARNING: This will read the entire request entity into memory and effectively disable streaming.
To help protect against excessive memory use, the request will be aborted if the request is larger than allowed by the
akka.http.parsing.max-to-strict-bytes
configuration setting.Extracts the akka.http.javadsl.server.RequestContext itself with the strict HTTP entity, or fails the route if unable to drain the entire request body within the timeout.
- timeout
The directive is failed if the stream isn't completed after the given timeout.
- Definition Classes
- BasicDirectives
- def validate(check: BooleanSupplier, errorMsg: String, inner: Supplier[Route]): Route
Checks the given condition before running its inner route.
Checks the given condition before running its inner route. If the condition fails the route is rejected with a ValidationRejection.
- Definition Classes
- MiscDirectives
- def withExecutionContext(ec: ExecutionContextExecutor, inner: Supplier[Route]): Route
Runs its inner route with the given alternative scala.concurrent.ExecutionContextExecutor.
Runs its inner route with the given alternative scala.concurrent.ExecutionContextExecutor.
- Definition Classes
- BasicDirectives
- def withLog(log: LoggingAdapter, inner: Supplier[Route]): Route
Runs its inner route with the given alternative LoggingAdapter.
Runs its inner route with the given alternative LoggingAdapter.
- Definition Classes
- BasicDirectives
- def withMaterializer(mat: Materializer, inner: Supplier[Route]): Route
Runs its inner route with the given alternative akka.stream.Materializer.
Runs its inner route with the given alternative akka.stream.Materializer.
- Definition Classes
- BasicDirectives
- def withPrecompressedMediaTypeSupport(inner: Supplier[Route]): Route
Inspects the response entity and adds a
Content-Encoding: gzip
response header if the entity's media-type is precompressed with gzip and noContent-Encoding
header is present yet.Inspects the response entity and adds a
Content-Encoding: gzip
response header if the entity's media-type is precompressed with gzip and noContent-Encoding
header is present yet.- Definition Classes
- CodingDirectives
- def withRangeSupport(inner: Supplier[Route]): Route
Answers GET requests with an
Accept-Ranges: bytes
header and converts HttpResponses coming back from its inner route into partial responses if the initial request contained a validRange
request header.Answers GET requests with an
Accept-Ranges: bytes
header and converts HttpResponses coming back from its inner route into partial responses if the initial request contained a validRange
request header. The requested byte-ranges may be coalesced. This directive is transparent to non-GET requests Rejects requests with unsatisfiable rangesUnsatisfiableRangeRejection
. Rejects requests with too many expected ranges.Note: if you want to combine this directive with
conditional(...)
you need to put it on the *inside* of theconditional(...)
directive, i.e.conditional(...)
must be on a higher level in your route structure in order to function correctly.For more information, see: https://tools.ietf.org/html/rfc7233
- Definition Classes
- RangeDirectives
- def withRequestTimeout(timeout: Duration, timeoutHandler: Function[HttpRequest, HttpResponse], inner: Supplier[Route]): RouteAdapter
Tries to set a new request timeout and handler (if provided) at the same time.
Tries to set a new request timeout and handler (if provided) at the same time.
Due to the inherent raciness it is not guaranteed that the update will be applied before the previously set timeout has expired!
- Definition Classes
- TimeoutDirectives
- def withRequestTimeout(timeout: Duration, inner: Supplier[Route]): RouteAdapter
Tries to set a new request timeout and handler (if provided) at the same time.
Tries to set a new request timeout and handler (if provided) at the same time.
Due to the inherent raciness it is not guaranteed that the update will be applied before the previously set timeout has expired!
- Definition Classes
- TimeoutDirectives
- def withRequestTimeoutResponse(timeoutHandler: Function[HttpRequest, HttpResponse], inner: Supplier[Route]): RouteAdapter
Tries to set a new request timeout handler, which produces the timeout response for a given request.
Tries to set a new request timeout handler, which produces the timeout response for a given request. Note that the handler must produce the response synchronously and shouldn't block!
Due to the inherent raciness it is not guaranteed that the update will be applied before the previously set timeout has expired!
- Definition Classes
- TimeoutDirectives
- def withSettings(s: RoutingSettings, inner: Supplier[Route]): Route
Runs its inner route with the given alternative RoutingSettings.
Runs its inner route with the given alternative RoutingSettings.
- Definition Classes
- BasicDirectives
- def withSizeLimit(maxBytes: Long, inner: Supplier[Route]): Route
Fails the stream with akka.http.scaladsl.model.EntityStreamSizeException if its request entity size exceeds given limit.
Fails the stream with akka.http.scaladsl.model.EntityStreamSizeException if its request entity size exceeds given limit. Limit given as parameter overrides limit configured with
.akka.http.parsing.max-content-length
Beware that request entity size check is executed when entity is consumed.
- Definition Classes
- MiscDirectives
- def withoutRequestTimeout(inner: Supplier[Route]): RouteAdapter
- Definition Classes
- TimeoutDirectives
- def withoutSizeLimit(inner: Supplier[Route]): Route
Disables the size limit (configured by
akka.http.parsing.max-content-length
by default) checking on the incoming akka.http.javadsl.model.HttpRequest entity.Disables the size limit (configured by
akka.http.parsing.max-content-length
by default) checking on the incoming akka.http.javadsl.model.HttpRequest entity. Can be useful when handling arbitrarily large data uploads in specific parts of your routes.- Definition Classes
- MiscDirectives
- Note
Usage of
withoutSizeLimit
is not recommended as it turns off the too large payload protection. Therefore, we highly encourage usingwithSizeLimit
instead, providing it with a value high enough to successfully handle the route in need of big entities.
- def extractUpgradeToWebSocket(inner: Function[UpgradeToWebSocket, Route]): Route
Extract the UpgradeToWebSocket header if existent.
Extract the UpgradeToWebSocket header if existent. Rejects with an ExpectedWebSocketRequestRejection, otherwise.
- Definition Classes
- WebSocketDirectives
- Annotations
- @Deprecated @deprecated
- Deprecated
(Since version 10.2.0) use
extractWebSocketUpgrade
instead
- def route(alternatives: Route*): Route
Java-specific call added so you can chain together multiple alternate routes using comma, rather than having to explicitly call route1.orElse(route2).orElse(route3).
Java-specific call added so you can chain together multiple alternate routes using comma, rather than having to explicitly call route1.orElse(route2).orElse(route3).
- Definition Classes
- RouteDirectives
- Annotations
- @Deprecated @deprecated @CorrespondsTo() @varargs()
- Deprecated
(Since version 10.1.6) Use the RouteDirectives.concat method instead.