dynamic
Enforces that the code constructing the inner route is run for every request.
Signature
def dynamic: ByNameDirective0
Description
dynamic
is a special directive because, in fact, it doesn’t implement Directive
at all. That means you cannot
use it in combination with the usual directive operators.
Use dynamicIf
to run the inner route constructor dynamically depending on a static condition.
Example
var value = 0
val route =
dynamic {
value += 1 /// executed for each request
complete(s"Result is now $value") // route executed in future
}
Get("/") ~> route ~> check {
responseAs[String] === "Result is now 1"
}
Get("/") ~> route ~> check {
responseAs[String] === "Result is now 2"
}