formField

Signature

def formField(pdm: FieldMagnet): pdm.Out

Description

Allows extracting a single Form field sent in the request.

See formFields for an in-depth description.

Example

val route =
  formField('color) { color =>
    complete(s"The color is '$color'")
  } ~
    formField('id.as[Int]) { id =>
      complete(s"The id is '$id'")
    }

// tests:
Post("/", FormData("color" -> "blue")) ~> route ~> check {
  responseAs[String] shouldEqual "The color is 'blue'"
}

Get("/") ~> Route.seal(route) ~> check {
  status shouldEqual StatusCodes.BadRequest
  responseAs[String] shouldEqual "Request is missing required form field 'color'"
}
The source code for this page can be found here.