validate
Allows validating a precondition before handling a route.
Description
Checks an arbitrary condition and passes control to the inner route if it returns true
. Otherwise, rejects the request with a ValidationRejection
containing the given error message.
Example
- Scala
-
source
val route = extractUri { uri => validate(uri.path.toString.size < 5, s"Path too long: '${uri.path.toString}'") { complete(s"Full URI: $uri") } } // tests: Get("/234") ~> route ~> check { responseAs[String] shouldEqual "Full URI: http://example.com/234" } Get("/abcdefghijkl") ~> route ~> check { rejection shouldEqual ValidationRejection("Path too long: '/abcdefghijkl'", None) }
- Java