param extractor using org.http4s.QueryParamDecoder.
param extractor using org.http4s.QueryParamDecoder. Note that this will _always_ match, but will return an Option possibly containing the result of the conversion to T
case class Foo(i: Int) implicit val fooDecoder: QueryParamDecoder[Foo] = ... case class Bar(i: Int) implicit val barDecoder: QueryParamDecoder[Bar] = ... object FooMatcher extends ValidatingQueryParamDecoderMatcher[Foo]("foo") object BarMatcher extends OptionalValidatingQueryParamDecoderMatcher[Bar]("bar") val service: HttpService = { case GET -> Root / "closest" :? FooMatcher(fooValue) +& BarMatcher(barValue) => { ^(fooValue, barValue getOrElse 42.right) { (foo, bar) => ... }.fold( nelE => BadRequest(nelE.toList.map(_.sanitized).mkString("\n")), baz => { ... } ) }
Base class for path extractors.
param extractor using QueryParamDecoder: case class Foo(i: Int) implicit val fooDecoder: QueryParamDecoder[Foo] = ...
param extractor using QueryParamDecoder: case class Foo(i: Int) implicit val fooDecoder: QueryParamDecoder[Foo] = ...
object FooMatcher extends QueryParamDecoderMatcher[Foo]("foo") val service: HttpService = { case GET -> Root / "closest" :? FooMatcher(2) => ...
param extractor using QueryParamDecoder:
param extractor using QueryParamDecoder:
case class Foo(i: Int) implicit val fooDecoder: QueryParamDecoder[Foo] = ... implicit val fooParam: QueryParam[Foo] = ... object FooMatcher extends QueryParamDecoderMatcher[Foo] val service: HttpService = { case GET -> Root / "closest" :? FooMatcher(2) => ...
param extractor using org.http4s.QueryParamDecoder.
param extractor using org.http4s.QueryParamDecoder. Note that this will return a ParseFailure if the parameter cannot be decoded.
case class Foo(i: Int) implicit val fooDecoder: QueryParamDecoder[Foo] = ... object FooMatcher extends ValidatingQueryParamDecoderMatcher[Foo]("foo") val service: HttpService = { case GET -> Root / "closest" :? FooMatcher(fooValue) => { fooValue.fold( nelE => BadRequest(nelE.toList.map(_.sanitized).mkString("\n")), foo => { ... } ) }
Multiple param extractor: object A extends ParamMatcher("a") object B extends ParamMatcher("b") val service: HttpService = { case GET -> Root / "user" :? A(a) +& B(b) => ...
Integer extractor of a path variable: Path("/user/123") match { case Root / "user" / IntParam(userId) => ...
Long extractor of a path variable: Path("/user/123") match { case Root / "user" / LongParam(userId) => ...
Root extractor: Path("/") match { case Root => ...
Root extractor: Path("/") match { case Root => ... }
File extension extractor
(Since version 7.0.1) MetricSpace is deprecated