Package

org.http4s.dsl

impl

Permalink

package impl

Visibility
  1. Public
  2. All

Type Members

  1. case class /(parent: Path, child: String) extends Path with Product with Serializable

    Permalink
  2. trait Auth extends AnyRef

    Permalink
  3. trait EmptyResponseGenerator[F[_]] extends ResponseGenerator

    Permalink

    Helper for the generation of a org.http4s.Response which will not contain a body

    Helper for the generation of a org.http4s.Response which will not contain a body

    While it is possible to for the org.http4s.Response manually, the EntityResponseGenerators offer shortcut syntax to make intention clear and concise.

    Example:
    1. val resp: F[Response] = Status.Continue()
  4. trait EntityResponseGenerator[F[_]] extends ResponseGenerator

    Permalink

    Helper for the generation of a org.http4s.Response which may contain a body

    Helper for the generation of a org.http4s.Response which may contain a body

    While it is possible to construct the org.http4s.Response manually, the EntityResponseGenerators offer shortcut syntax to make intention clear and concise.

    Example:
    1. val resp: IO[Response] = Ok("Hello world!")
  5. trait LocationResponseGenerator[F[_]] extends EntityResponseGenerator[F]

    Permalink
  6. class MethodConcat extends AnyRef

    Permalink
  7. trait Methods extends AnyRef

    Permalink
  8. class NumericPathVar[A <: AnyVal] extends AnyRef

    Permalink
    Attributes
    protected
  9. abstract class OptionalMultiQueryParamDecoderMatcher[T] extends AnyRef

    Permalink

    Capture a query parameter that appears 0 or more times.

    Capture a query parameter that appears 0 or more times.

    case class Foo(i: Int)
    implicit val fooDecoder: QueryParamDecoder[Foo] = ...
    implicit val fooParam: QueryParam[Foo] = ...
    
    object FooMatcher extends OptionalMultiQueryParamDecoderMatcher[Foo]("foo")
    val service: HttpService = {
      // matches http://.../closest?foo=2&foo=3&foo=4
      case GET -> Root / "closest" :? FooMatcher(Some(Seq(2,3,4))) => ...
    
      /*
      *  matches http://.../closest?foo=2&foo=3&foo=4 as well as http://.../closest (no parameters)
      *  or http://.../closest?foo=2 (single occurrence)
      */
      case GET -> Root / "closest" :? FooMatcher(is) => ...
  10. abstract class OptionalQueryParamDecoderMatcher[T] extends AnyRef

    Permalink
  11. abstract class OptionalQueryParamMatcher[T] extends OptionalQueryParamDecoderMatcher[T]

    Permalink
  12. abstract class OptionalValidatingQueryParamDecoderMatcher[T] extends AnyRef

    Permalink

    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  => { ... }
      )
    }
  13. trait Path extends AnyRef

    Permalink

    Base class for path extractors.

  14. trait ProxyAuthenticateResponseGenerator[F[_]] extends ResponseGenerator

    Permalink
  15. abstract class QueryParamDecoderMatcher[T] extends AnyRef

    Permalink

    param extractor using QueryParamDecoder:

    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) => ...
  16. abstract class QueryParamMatcher[T] extends QueryParamDecoderMatcher[T]

    Permalink

    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) => ...
  17. trait ResponseGenerator extends Any

    Permalink
  18. trait Responses[F[_]] extends AnyRef

    Permalink
  19. trait Statuses extends AnyRef

    Permalink
  20. abstract class ValidatingQueryParamDecoderMatcher[T] extends AnyRef

    Permalink

    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  => { ... }
      )
    }
  21. trait WwwAuthenticateResponseGenerator[F[_]] extends ResponseGenerator

    Permalink

Value Members

  1. object +&

    Permalink

    Multiple param extractor:

    Multiple param extractor:

    object A extends QueryParamDecoderMatcher[String]("a")
    object B extends QueryParamDecoderMatcher[Int]("b")
    val service: HttpService = {
      case GET -> Root / "user" :? A(a) +& B(b) => ...
  2. object ->

    Permalink
  3. object /:

    Permalink

    Path separator extractor:

    Path separator extractor:

    Path("/1/2/3/test.json") match {
      case "1" /: "2" /: _ =>  ...
  4. object :?

    Permalink
  5. object IntVar extends NumericPathVar[Int]

    Permalink

    Integer extractor of a path variable:

    Integer extractor of a path variable:

    Path("/user/123") match {
       case Root / "user" / IntVar(userId) => ...
  6. object LongVar extends NumericPathVar[Long]

    Permalink

    Long extractor of a path variable:

    Long extractor of a path variable:

    Path("/user/123") match {
       case Root / "user" / LongVar(userId) => ...
  7. object Path

    Permalink
  8. object Responses

    Permalink
  9. object Root extends Path with Product with Serializable

    Permalink

    Root extractor:

    Root extractor:

    Path("/") match {
      case Root => ...
    }
  10. object ~

    Permalink

    File extension extractor

Ungrouped