* 19756: Add extractData and extractRequestEntity directives. remove unnecessary import * #19756: add documentation to extractDataBytes and extractRequestEntity directives
This commit is contained in:
parent
735060da20
commit
7fdd5983a3
8 changed files with 147 additions and 1 deletions
|
|
@ -795,5 +795,36 @@ class BasicDirectivesExamplesSpec extends RoutingSpec {
|
|||
}
|
||||
//#
|
||||
}
|
||||
"extractRequestEntity-example" in {
|
||||
//#extractRequestEntity-example
|
||||
val route =
|
||||
extractRequestEntity { entity =>
|
||||
complete(s"Request entity content-type is ${entity.contentType}")
|
||||
}
|
||||
|
||||
// tests:
|
||||
val httpEntity = HttpEntity(ContentTypes.`text/plain(UTF-8)`, "req")
|
||||
Post("/abc", httpEntity) ~> route ~> check {
|
||||
responseAs[String] shouldEqual s"Request entity content-type is text/plain; charset=UTF-8"
|
||||
}
|
||||
//#
|
||||
}
|
||||
"extractDataBytes-example" in {
|
||||
//#extractDataBytes-example
|
||||
val route =
|
||||
extractDataBytes { data ⇒
|
||||
val sum = data.runFold(0) { (acc, i) ⇒ acc + i.utf8String.toInt }
|
||||
onSuccess(sum) { s ⇒
|
||||
complete(HttpResponse(entity = HttpEntity(s.toString)))
|
||||
}
|
||||
}
|
||||
|
||||
// tests:
|
||||
val dataBytes = Source.fromIterator(() ⇒ Iterator.range(1, 10).map(x ⇒ ByteString(x.toString)))
|
||||
Post("/abc", HttpEntity(ContentTypes.`text/plain(UTF-8)`, data = dataBytes)) ~> route ~> check {
|
||||
responseAs[String] shouldEqual "45"
|
||||
}
|
||||
//#
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue