headerValueByName
Signature
Description
Extracts the value of the HTTP request header with the given name.
The name can be given as a String
or as a Symbol
. If no header with a matching name is found the request
is rejected with a MissingHeaderRejection
.
If the header is expected to be missing in some cases or to customize handling when the header is missing use the optionalHeaderValueByName directive instead.
Example
val route =
headerValueByName("X-User-Id") { userId =>
complete(s"The user is $userId")
}
// tests:
Get("/") ~> RawHeader("X-User-Id", "Joe42") ~> route ~> check {
responseAs[String] shouldEqual "The user is Joe42"
}
Get("/") ~> Route.seal(route) ~> check {
status shouldEqual BadRequest
responseAs[String] shouldEqual "Request is missing required HTTP header 'X-User-Id'"
}
Contents