Packages

abstract class Endpoints[F[_]] extends algebra.Endpoints with EndpointsWithCustomErrors with BuiltInErrors

Interpreter for algebra.Endpoints based on http4s. It uses algebra.BuiltInErrors to model client and server errors.

Consider the following endpoint definition:

trait MyEndpoints extends algebra.Endpoints with algebra.JsonEntitiesFromSchemas {
  val inc = endpoint(get(path / "inc" /? qs[Int]("x")), ok(jsonResponse[Int]))
}

You can get an http4s service for it as follow:

object MyService
  extends endpoints.http4s.server.Endpoints[IO]
    with endpoints.http4s.server.JsonEntitiesFromSchemas
    with MyEndpoints {

  val service: org.http4s.HttpRoutes[IO] = HttpRoutes.of(
    routesFromEndpoints(
      inc.implementedBy(x => x + 1)
    )
  )
}
F

Effect type

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Endpoints
  2. BuiltInErrors
  3. EndpointsWithCustomErrors
  4. Urls
  5. StatusCodes
  6. Methods
  7. Endpoints
  8. BuiltInErrors
  9. EndpointsWithCustomErrors
  10. Errors
  11. Responses
  12. StatusCodes
  13. Requests
  14. SemigroupalSyntax
  15. Methods
  16. Urls
  17. PartialInvariantFunctorSyntax
  18. InvariantFunctorSyntax
  19. AnyRef
  20. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Endpoints()(implicit F: Sync[F])

Type Members

  1. final class CallbackDocs extends Serializable
    Definition Classes
    EndpointsWithCustomErrors
  2. type CallbacksDocs = Map[String, CallbackDocs]
    Definition Classes
    EndpointsWithCustomErrors
  3. type ClientErrors = Invalid
    Definition Classes
    BuiltInErrors → Errors
  4. final type Effect[A] = F[A]
    Definition Classes
    EndpointsEndpointsWithCustomErrorsUrls
  5. final class EndpointDocs extends Serializable
    Definition Classes
    EndpointsWithCustomErrors
  6. implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef
    Definition Classes
    InvariantFunctorSyntax
  7. type Method = org.http4s.Method
    Definition Classes
    Methods → Methods
  8. type Params = Map[String, Seq[String]]
    Definition Classes
    Urls
  9. implicit class PartialInvariantFunctorSyntax[A, F[_]] extends AnyRef
    Definition Classes
    PartialInvariantFunctorSyntax
  10. implicit class PathOps[A] extends AnyRef
    Definition Classes
    Urls
  11. type QueryString[A] = (Params) => Validated[A]
    Definition Classes
    Urls → Urls
  12. implicit class QueryStringSyntax[A] extends AnyRef
    Definition Classes
    Urls
  13. type Request[A] = PartialFunction[org.http4s.Request[Effect], Effect[Either[org.http4s.Response[Effect], A]]]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  14. type RequestEntity[A] = (org.http4s.Request[Effect]) => Effect[Either[org.http4s.Response[Effect], A]]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  15. implicit class RequestEntitySyntax[A] extends AnyRef
    Definition Classes
    Requests
  16. type RequestHeaders[A] = (Headers) => Validated[A]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  17. type Response[A] = (A) => org.http4s.Response[Effect]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  18. type ResponseEntity[A] = EntityEncoder[Effect, A]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  19. type ResponseHeaders[A] = (A) => Headers
    Definition Classes
    EndpointsWithCustomErrors → Responses
  20. implicit class ResponseSyntax[A] extends AnyRef
    Definition Classes
    Responses
  21. implicit class SemigroupalSyntax[A, F[_]] extends AnyRef
    Definition Classes
    SemigroupalSyntax
  22. type ServerError = Throwable
    Definition Classes
    BuiltInErrors → Errors
  23. type StatusCode = Status
    Definition Classes
    StatusCodes → StatusCodes
  24. case class Endpoint[A, B](request: Request[A], response: Response[B], operationId: Option[String]) extends Product with Serializable
    Definition Classes
    EndpointsWithCustomErrors
  25. trait Path[A] extends EndpointsWithCustomErrors.Url[A]
    Definition Classes
    Urls
  26. trait QueryStringParam[A] extends AnyRef
    Definition Classes
    Urls
  27. trait Segment[A] extends AnyRef
    Definition Classes
    Urls
  28. trait Url[A] extends AnyRef
    Definition Classes
    Urls

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def Accepted: Status
    Definition Classes
    StatusCodes → StatusCodes
  5. def AlreadyReported: Status
    Definition Classes
    StatusCodes → StatusCodes
  6. def BadRequest: Status
    Definition Classes
    StatusCodes → StatusCodes
  7. def Conflict: Status
    Definition Classes
    StatusCodes → StatusCodes
  8. def Created: Status
    Definition Classes
    StatusCodes → StatusCodes
  9. def Delete: Method
    Definition Classes
    Methods → Methods
  10. implicit final def Effect: Sync[Effect]
    Definition Classes
    EndpointsEndpointsWithCustomErrors
  11. def ExpectationFailed: Status
    Definition Classes
    StatusCodes → StatusCodes
  12. def FailedDependency: Status
    Definition Classes
    StatusCodes → StatusCodes
  13. def Forbidden: Status
    Definition Classes
    StatusCodes → StatusCodes
  14. def Get: Method
    Definition Classes
    Methods → Methods
  15. def Gone: Status
    Definition Classes
    StatusCodes → StatusCodes
  16. def IMUsed: Status
    Definition Classes
    StatusCodes → StatusCodes
  17. def InternalServerError: Status
    Definition Classes
    StatusCodes → StatusCodes
  18. def LengthRequired: Status
    Definition Classes
    StatusCodes → StatusCodes
  19. def Locked: Status
    Definition Classes
    StatusCodes → StatusCodes
  20. def MethodNotAllowed: Status
    Definition Classes
    StatusCodes → StatusCodes
  21. def MisdirectedRequest: Status
    Definition Classes
    StatusCodes → StatusCodes
  22. def MultiStatus: Status
    Definition Classes
    StatusCodes → StatusCodes
  23. def NoContent: Status
    Definition Classes
    StatusCodes → StatusCodes
  24. def NonAuthoritativeInformation: Status
    Definition Classes
    StatusCodes → StatusCodes
  25. def NotAcceptable: Status
    Definition Classes
    StatusCodes → StatusCodes
  26. def NotFound: Status
    Definition Classes
    StatusCodes → StatusCodes
  27. def NotImplemented: Status
    Definition Classes
    StatusCodes → StatusCodes
  28. def NotModified: Status
    Definition Classes
    StatusCodes → StatusCodes
  29. def OK: Status
    Definition Classes
    StatusCodes → StatusCodes
  30. def Options: Method
    Definition Classes
    Methods → Methods
  31. def PartialContent: Status
    Definition Classes
    StatusCodes → StatusCodes
  32. def Patch: Method
    Definition Classes
    Methods → Methods
  33. def PayloadTooLarge: Status
    Definition Classes
    StatusCodes → StatusCodes
  34. def PaymentRequired: Status
    Definition Classes
    StatusCodes → StatusCodes
  35. def Post: Method
    Definition Classes
    Methods → Methods
  36. def PreconditionFailed: Status
    Definition Classes
    StatusCodes → StatusCodes
  37. def PreconditionRequired: Status
    Definition Classes
    StatusCodes → StatusCodes
  38. def ProxyAuthenticationRequired: Status
    Definition Classes
    StatusCodes → StatusCodes
  39. def Put: Method
    Definition Classes
    Methods → Methods
  40. def RangeNotSatisfiable: Status
    Definition Classes
    StatusCodes → StatusCodes
  41. def RequestHeaderFieldsTooLarge: Status
    Definition Classes
    StatusCodes → StatusCodes
  42. def RequestTimeout: Status
    Definition Classes
    StatusCodes → StatusCodes
  43. def ResetContent: Status
    Definition Classes
    StatusCodes → StatusCodes
  44. def TooEarly: Status
    Definition Classes
    StatusCodes → StatusCodes
  45. def TooManyRequests: Status
    Definition Classes
    StatusCodes → StatusCodes
  46. def Unauthorized: Status
    Definition Classes
    StatusCodes → StatusCodes
  47. def UnavailableForLegalReasons: Status
    Definition Classes
    StatusCodes → StatusCodes
  48. def UnprocessableEntity: Status
    Definition Classes
    StatusCodes → StatusCodes
  49. def UnsupportedMediaType: Status
    Definition Classes
    StatusCodes → StatusCodes
  50. def UpgradeRequired: Status
    Definition Classes
    StatusCodes → StatusCodes
  51. def UriTooLong: Status
    Definition Classes
    StatusCodes → StatusCodes
  52. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  53. final def badRequest[A, R](docs: Documentation, headers: ResponseHeaders[A])(implicit tupler: Tupler.Aux[ClientErrors, A, R]): Response[R]
    Definition Classes
    Responses
  54. implicit def booleanQueryString: QueryStringParam[Boolean]
    Definition Classes
    Urls
  55. def chainPaths[A, B](first: Path[A], second: Path[B])(implicit tupler: Tupler[A, B]): Path[Out]
    Definition Classes
    Urls → Urls
  56. def choiceRequestEntity[A, B](requestEntityA: RequestEntity[A], requestEntityB: RequestEntity[B]): RequestEntity[Either[A, B]]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  57. def choiceResponse[A, B](responseA: Response[A], responseB: Response[B]): Response[Either[A, B]]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  58. lazy val clientErrorsResponse: Response[ClientErrors]
    Definition Classes
    Errors
  59. def clientErrorsResponseEntity: ResponseEntity[Invalid]
    Definition Classes
    BuiltInErrors → BuiltInErrors → Errors
  60. final def clientErrorsToInvalid(clientErrors: ClientErrors): Invalid
    Definition Classes
    BuiltInErrors → Errors
  61. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  62. def combineQueryStrings[A, B](first: QueryString[A], second: QueryString[B])(implicit tupler: Tupler[A, B]): QueryString[Out]

    Concatenates two QueryStrings

    Concatenates two QueryStrings

    Definition Classes
    Urls → Urls
  63. final def delete[UrlP, HeadersP, Out](url: Url[UrlP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): Request[Out]
    Definition Classes
    Requests
  64. implicit def doubleQueryString: QueryStringParam[Double]
    Definition Classes
    Urls
  65. implicit def doubleSegment: Segment[Double]
    Definition Classes
    Urls
  66. def emptyRequest: RequestEntity[Unit]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  67. def emptyRequestHeaders: RequestHeaders[Unit]

    HEADERS

    HEADERS

    Definition Classes
    EndpointsWithCustomErrors → Requests
  68. def emptyResponse: ResponseEntity[Unit]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  69. def emptyResponseHeaders: ResponseHeaders[Unit]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  70. def endpoint[A, B](request: Request[A], response: Response[B], docs: EndpointDocs = EndpointDocs()): Endpoint[A, B]
    Definition Classes
    EndpointsWithCustomErrors → EndpointsWithCustomErrors
  71. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  72. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  73. final def get[UrlP, HeadersP, Out](url: Url[UrlP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): Request[Out]
    Definition Classes
    Requests
  74. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  75. def handleClientErrors(invalid: Invalid): Effect[org.http4s.Response[Effect]]

    This method is called by endpoints when decoding a request failed.

    This method is called by endpoints when decoding a request failed.

    The provided implementation calls clientErrorsResponse to construct a response containing the errors.

    This method can be overridden to customize the error reporting logic.

    Definition Classes
    EndpointsWithCustomErrors
  76. def handleServerError(throwable: Throwable): Effect[org.http4s.Response[Effect]]

    This method is called by endpoints when an exception is thrown during request processing.

    This method is called by endpoints when an exception is thrown during request processing.

    The provided implementation calls serverErrorResponse to construct a response containing the error message.

    This method can be overridden to customize the error reporting logic.

    Definition Classes
    EndpointsWithCustomErrors
  77. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  78. implicit def intQueryString: QueryStringParam[Int]
    Definition Classes
    Urls
  79. implicit def intSegment: Segment[Int]
    Definition Classes
    Urls
  80. final def internalServerError[A, R](docs: Documentation, headers: ResponseHeaders[A])(implicit tupler: Tupler.Aux[ServerError, A, R]): Response[R]
    Definition Classes
    Responses
  81. final def invalidToClientErrors(invalid: Invalid): ClientErrors
    Definition Classes
    BuiltInErrors → Errors
  82. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  83. implicit def longQueryString: QueryStringParam[Long]
    Definition Classes
    Urls
  84. implicit def longSegment: Segment[Long]
    Definition Classes
    Urls
  85. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  86. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  87. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  88. final def ok[A, B, R](entity: ResponseEntity[A], docs: Documentation, headers: ResponseHeaders[B])(implicit tupler: Tupler.Aux[A, B, R]): Response[R]
    Definition Classes
    Responses
  89. def optRequestHeader(name: String, docs: Documentation): RequestHeaders[Option[String]]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  90. def optResponseHeader(name: String, docs: Documentation = None): ResponseHeaders[Option[String]]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  91. implicit def optionalQueryStringParam[A](implicit param: QueryStringParam[A]): QueryStringParam[Option[A]]
    Definition Classes
    Urls → Urls
  92. final def patch[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
    Definition Classes
    Requests
  93. val path: Path[Unit]
    Definition Classes
    Urls
  94. implicit def pathPartialInvariantFunctor: PartialInvariantFunctor[Path]
    Definition Classes
    Urls → Urls
  95. final def post[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
    Definition Classes
    Requests
  96. final def put[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], docs: Documentation, headers: RequestHeaders[HeadersP])(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
    Definition Classes
    Requests
  97. def qs[A](name: String, docs: Documentation = None)(implicit value: QueryStringParam[A]): QueryString[A]
    Definition Classes
    Urls → Urls
  98. implicit def queryStringParamPartialInvariantFunctor: PartialInvariantFunctor[QueryStringParam]
    Definition Classes
    Urls → Urls
  99. implicit def queryStringPartialInvariantFunctor: PartialInvariantFunctor[QueryString]
    Definition Classes
    Urls → Urls
  100. def remainingSegments(name: String = "", docs: Documentation = None): Path[String]
    Definition Classes
    Urls → Urls
  101. implicit def repeatedQueryStringParam[A, CC[X] <: Iterable[X]](implicit param: QueryStringParam[A], factory: Factory[A, CC[A]]): QueryStringParam[CC[A]]
    Definition Classes
    Urls → Urls
  102. def request[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](method: Method, url: Url[UrlP], entity: RequestEntity[BodyP] = emptyRequest, docs: Documentation = None, headers: RequestHeaders[HeadersP] = emptyRequestHeaders)(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  103. implicit def requestEntityPartialInvariantFunctor: PartialInvariantFunctor[RequestEntity]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  104. def requestHeader(name: String, docs: Documentation): RequestHeaders[String]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  105. implicit def requestHeadersPartialInvariantFunctor: PartialInvariantFunctor[RequestHeaders]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  106. implicit def requestHeadersSemigroupal: Semigroupal[RequestHeaders]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  107. implicit def requestPartialInvariantFunctor: PartialInvariantFunctor[Request]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  108. def response[A, B, R](statusCode: StatusCode, entity: ResponseEntity[A], docs: Documentation, headers: ResponseHeaders[B])(implicit tupler: Tupler.Aux[A, B, R]): Response[R]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  109. implicit def responseEntityInvariantFunctor: InvariantFunctor[ResponseEntity]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  110. def responseHeader(name: String, docs: Documentation = None): ResponseHeaders[String]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  111. implicit def responseHeadersInvariantFunctor: InvariantFunctor[ResponseHeaders]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  112. implicit def responseHeadersSemigroupal: Semigroupal[ResponseHeaders]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  113. implicit lazy val responseInvariantFunctor: InvariantFunctor[Response]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  114. def routesFromEndpoints(endpoints: PartialFunction[org.http4s.Request[Effect], Effect[org.http4s.Response[Effect]]]*): PartialFunction[org.http4s.Request[Effect], Effect[org.http4s.Response[Effect]]]
    Definition Classes
    EndpointsWithCustomErrors
  115. def segment[A](name: String = "", docs: Documentation = None)(implicit A: Segment[A]): Path[A]
    Definition Classes
    Urls → Urls
  116. implicit def segmentPartialInvariantFunctor: PartialInvariantFunctor[Segment]
    Definition Classes
    Urls → Urls
  117. lazy val serverErrorResponse: Response[ServerError]
    Definition Classes
    Errors
  118. def serverErrorResponseEntity: ResponseEntity[Throwable]
    Definition Classes
    BuiltInErrors → BuiltInErrors → Errors
  119. final def serverErrorToThrowable(serverError: ServerError): Throwable
    Definition Classes
    BuiltInErrors → Errors
  120. def staticPathSegment(segment: String): Path[Unit]
    Definition Classes
    Urls → Urls
  121. implicit def stringQueryString: QueryStringParam[String]
    Definition Classes
    Urls → Urls
  122. implicit def stringSegment: Segment[String]
    Definition Classes
    Urls → Urls
  123. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  124. def textRequest: RequestEntity[String]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  125. def textResponse: ResponseEntity[String]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  126. final def throwableToServerError(throwable: Throwable): ServerError
    Definition Classes
    BuiltInErrors → Errors
  127. def toString(): String
    Definition Classes
    AnyRef → Any
  128. implicit def urlPartialInvariantFunctor: PartialInvariantFunctor[Url]
    Definition Classes
    Urls → Urls
  129. def urlWithQueryString[A, B](path: Path[A], qs: QueryString[B])(implicit tupler: Tupler[A, B]): Url[Out]

    Builds an URL from the given path and query string

    Builds an URL from the given path and query string

    Definition Classes
    Urls → Urls
  130. val utf8Name: String
    Definition Classes
    Urls
  131. implicit def uuidQueryString: QueryStringParam[UUID]
    Definition Classes
    Urls
  132. implicit def uuidSegment: Segment[UUID]
    Definition Classes
    Urls
  133. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  134. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  135. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  136. final def wheneverFound[A](responseA: Response[A], notFoundDocs: Documentation): Response[Option[A]]
    Definition Classes
    Responses
  137. object EndpointDocs extends Serializable
    Definition Classes
    EndpointsWithCustomErrors

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from BuiltInErrors

Inherited from Urls

Inherited from StatusCodes

Inherited from Methods

Inherited from algebra.Endpoints

Inherited from algebra.BuiltInErrors

Inherited from Errors

Inherited from Responses

Inherited from algebra.StatusCodes

Inherited from Requests

Inherited from algebra.Methods

Inherited from algebra.Urls

Inherited from AnyRef

Inherited from Any

Ungrouped