FormDataDecoder

org.http4s.FormDataDecoder
See theFormDataDecoder companion object
sealed trait FormDataDecoder[A]

A decoder ware that uses QueryParamDecoder to decode values in org.http4s.UrlForm

Attributes

Example
scala> import cats.syntax.all._
scala> import cats.data._
scala> import org.http4s.FormDataDecoder._
scala> import org.http4s.ParseFailure
scala> case class Foo(a: String, b: Boolean)
scala> case class Bar(fs: List[Foo], f: Foo, d: Boolean)
scala>
scala> implicit val fooMapper: FormDataDecoder[Foo] = (
    |   field[String]("a"),
    |   field[Boolean]("b")
    | ).mapN(Foo.apply)
scala>
scala> val barMapper = (
    |   list[Foo]("fs"),
    |   nested[Foo]("f"),
    |   field[Boolean]("d")
    | ).mapN(Bar.apply)
scala>
scala> barMapper(
    |   Map(
    |    "fs[].a" -> Chain("a1", "a2"),
    |    "fs[].b" -> Chain("true", "false"),
    |    "f.a" -> Chain("fa"),
    |    "f.b" -> Chain("false"),
    |    "d" -> Chain("true"))
    | )
res1: ValidatedNel[ParseFailure, Bar] = Valid(Bar(List(Foo(a1,true), Foo(a2,false)),Foo(fa,false),true))

The companion object provides a EntityDecoder from HTML form parameters.

 import org.http4s.FormDataDecoder.formEntityDecoder
 HttpRoutes
  .of[F] {
    case req @ POST -> Root =>
      req.as[MyEntity].flatMap { entity =>
        Ok()
      }
  }

For more examples, check the tests https://github.com/http4s/http4s/blob/main/tests/src/test/scala/org/http4s/FormDataDecoderSpec.scala

Companion
object
Source
FormDataDecoder.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Abstract methods

def apply(data: Map[String, Chain[String]]): ValidatedNel[ParseFailure, A]

Attributes

Source
FormDataDecoder.scala

Concrete methods

def default(defaultValue: A): FormDataDecoder[A]
Implicitly added by FormDataDecoderSyntax

Use a default value when the field is missing

Use a default value when the field is missing

Attributes

Source
FormDataDecoder.scala

Attributes

Source
FormDataDecoder.scala
def optional: FormDataDecoder[Option[A]]
Implicitly added by FormDataDecoderSyntax

Attributes

Source
FormDataDecoder.scala
Implicitly added by FormDataDecoderSyntax

Attributes

Source
FormDataDecoder.scala

Filters out empty strings including spaces before decoding

Filters out empty strings including spaces before decoding

Attributes

Source
FormDataDecoder.scala