Packages

trait Endpoints extends algebra.Endpoints with EndpointsWithCustomErrors with BuiltInErrors

Interpreter for algebra.Endpoints that performs routing using Play framework, and uses algebra.BuiltInErrors to model client and server errors.

Consider the following endpoints definition:

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

You can get a router for them as follows:

object MyRouter extends MyEndpoints with play.server.Endpoints with play.server.JsonEntities {

  val routes = routesFromEndpoints(
    inc.implementedBy(x => x + 1)
  )

}

Then MyRouter.routes can be used to define a proper Play router as follows:

val router = play.api.routing.Router.from(MyRouter.routes)
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Endpoints
  2. BuiltInErrors
  3. EndpointsWithCustomErrors
  4. StatusCodes
  5. Methods
  6. Urls
  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. All

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 class EndpointDocs extends Serializable
    Definition Classes
    EndpointsWithCustomErrors
  5. implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef
    Definition Classes
    InvariantFunctorSyntax
  6. implicit class PartialInvariantFunctorSyntax[A, F[_]] extends AnyRef
    Definition Classes
    PartialInvariantFunctorSyntax
  7. implicit class PathOps[A] extends AnyRef
    Definition Classes
    Urls
  8. implicit class QueryStringSyntax[A] extends AnyRef
    Definition Classes
    Urls
  9. type RequestEntity[A] = (RequestHeader) ⇒ Option[BodyParser[A]]

    Decodes a request entity

    Decodes a request entity

    Definition Classes
    EndpointsWithCustomErrors → Requests
  10. implicit class RequestEntitySyntax[A] extends AnyRef
    Definition Classes
    Requests
  11. type RequestExtractor[A] = (RequestHeader) ⇒ Option[A]

    Convenient type alias modeling the extraction of an A information from request headers.

    Convenient type alias modeling the extraction of an A information from request headers.

    This type has an instance of Applicative.

    Definition Classes
    Urls
  12. type RequestHeaders[A] = (Headers) ⇒ Validated[A]

    An attempt to extract an A from a request headers.

    An attempt to extract an A from a request headers.

    Models failure by returning a Left(result). That makes it possible to early return an HTTP response if a header is wrong (e.g. if an authentication information is missing)

    Definition Classes
    EndpointsWithCustomErrors → Requests
  13. type Response[A] = (A) ⇒ Result

    Turns the A information into a proper Play Result

    Turns the A information into a proper Play Result

    Definition Classes
    EndpointsWithCustomErrors → Responses
  14. type ResponseEntity[A] = (A) ⇒ HttpEntity
    Definition Classes
    EndpointsWithCustomErrors → Responses
  15. type ResponseHeaders[A] = (A) ⇒ Seq[(String, String)]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  16. implicit class ResponseSyntax[A] extends AnyRef
    Definition Classes
    Responses
  17. implicit class SemigroupalSyntax[A, F[_]] extends AnyRef
    Definition Classes
    SemigroupalSyntax
  18. type ServerError = Throwable
    Definition Classes
    BuiltInErrors → Errors
  19. type StatusCode = play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  20. case class Endpoint[A, B](request: Request[A], response: Response[B]) extends Product with Serializable

    Concrete representation of an Endpoint for routing purpose.

    Concrete representation of an Endpoint for routing purpose.

    Definition Classes
    EndpointsWithCustomErrors
  21. case class EndpointWithHandler[A, B](endpoint: Endpoint[A, B], service: (A) ⇒ Future[B]) extends ToPlayHandler with Product with Serializable

    An endpoint from which we can get a Play request handler.

    An endpoint from which we can get a Play request handler.

    Definition Classes
    EndpointsWithCustomErrors
  22. trait Request[A] extends AnyRef

    An HTTP request.

    An HTTP request.

    Has an instance of InvariantFunctor.

    Definition Classes
    EndpointsWithCustomErrors
  23. trait ToPlayHandler extends AnyRef

    Something that can be used as a Play request handler

    Something that can be used as a Play request handler

    Definition Classes
    EndpointsWithCustomErrors
  24. trait UrlAndHeaders[A] extends AnyRef

    The URL and HTTP headers of a request.

    The URL and HTTP headers of a request.

    Definition Classes
    EndpointsWithCustomErrors
  25. case class Method(value: String) extends Product with Serializable
    Definition Classes
    Methods
  26. implicit final class ApplicativeMapSyntax[F[_], A] extends AnyRef
    Definition Classes
    Urls
  27. trait Path[A] extends EndpointsWithCustomErrors.Url[A]
    Definition Classes
    Urls
  28. trait QueryString[A] extends AnyRef

    Query string encoding and decoding

    Query string encoding and decoding

    Definition Classes
    Urls
  29. trait QueryStringParam[A] extends AnyRef
    Definition Classes
    Urls
  30. trait Segment[A] extends AnyRef

    Defines how to decode and encode path segments

    Defines how to decode and encode path segments

    Definition Classes
    Urls
  31. trait Url[A] extends AnyRef
    Definition Classes
    Urls

Abstract Value Members

  1. abstract val playComponents: PlayComponents
    Definition Classes
    EndpointsWithCustomErrors

Concrete 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: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  5. def BadRequest: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  6. def Created: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  7. def Delete: Method
    Definition Classes
    Methods → Methods
  8. implicit def EmptyEndpointToPlayHandler[A, B](endpoint: Endpoint[A, B])(implicit ev: =:=[Unit, B]): ToPlayHandler
    Definition Classes
    EndpointsWithCustomErrors
  9. def Forbidden: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  10. def Get: Method
    Definition Classes
    Methods → Methods
  11. def InternalServerError: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  12. def NoContent: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  13. def NotFound: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  14. def NotImplemented: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  15. def OK: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  16. def Options: Method
    Definition Classes
    Methods → Methods
  17. def Patch: Method
    Definition Classes
    Methods → Methods
  18. def PayloadTooLarge: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  19. def Post: Method
    Definition Classes
    Methods → Methods
  20. def Put: Method
    Definition Classes
    Methods → Methods
  21. def TooManyRequests: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  22. def Unauthorized: play.api.mvc.Results.Status
    Definition Classes
    StatusCodes → StatusCodes
  23. implicit lazy val applicativeRequestExtractor: Applicative[RequestExtractor]
    Definition Classes
    Urls
  24. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  25. final def badRequest[A, R](docs: Documentation, headers: ResponseHeaders[A])(implicit tupler: Tupler.Aux[ClientErrors, A, R]): Response[R]
    Definition Classes
    Responses
  26. implicit def booleanQueryString: QueryStringParam[Boolean]
    Definition Classes
    Urls
  27. def chainPaths[A, B](first: Path[A], second: Path[B])(implicit tupler: Tupler[A, B]): Path[Out]
    Definition Classes
    Urls → Urls
  28. def choiceRequestEntity[A, B](requestEntityA: RequestEntity[A], requestEntityB: RequestEntity[B]): RequestEntity[Either[A, B]]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  29. def choiceResponse[A, B](responseA: Response[A], responseB: Response[B]): Response[Either[A, B]]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  30. lazy val clientErrorsResponse: Response[ClientErrors]
    Definition Classes
    Errors
  31. def clientErrorsResponseEntity: ResponseEntity[Invalid]
    Definition Classes
    BuiltInErrors → BuiltInErrors → Errors
  32. final def clientErrorsToInvalid(clientErrors: ClientErrors): Invalid
    Definition Classes
    BuiltInErrors → Errors
  33. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  34. def combineQueryStrings[A, B](first: QueryString[A], second: QueryString[B])(implicit tupler: Tupler[A, B]): QueryString[Out]
    Definition Classes
    Urls → Urls
  35. 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
  36. implicit def doubleQueryString: QueryStringParam[Double]
    Definition Classes
    Urls
  37. implicit def doubleSegment: Segment[Double]
    Definition Classes
    Urls
  38. lazy val emptyRequest: RequestEntity[Unit]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  39. lazy val emptyRequestHeaders: RequestHeaders[Unit]

    Always succeeds in extracting no information from the headers

    Always succeeds in extracting no information from the headers

    Definition Classes
    EndpointsWithCustomErrors → Requests
  40. def emptyResponse: ResponseEntity[Unit]

    An empty response entity

    An empty response entity

    Definition Classes
    EndpointsWithCustomErrors → Responses
  41. def emptyResponseHeaders: ResponseHeaders[Unit]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  42. def endpoint[A, B](request: Request[A], response: Response[B], docs: EndpointDocs = EndpointDocs()): Endpoint[A, B]
    Definition Classes
    EndpointsWithCustomErrors → EndpointsWithCustomErrors
  43. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  44. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  45. def extractMethodUrlAndHeaders[A, B](method: Method, url: Url[A], headers: RequestHeaders[B]): UrlAndHeaders[(A, B)]
    Attributes
    protected
    Definition Classes
    EndpointsWithCustomErrors
  46. implicit lazy val functorRequestExtractor: Functor[RequestExtractor]
    Definition Classes
    Urls
  47. 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
  48. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  49. def handleClientErrors(invalid: Invalid): Result

    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
    Urls
  50. def handleServerError(throwable: Throwable): Result

    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
  51. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  52. lazy val htmlResponse: ResponseEntity[Html]

    A successful HTTP response (status code 200) with an HTML entity

    A successful HTTP response (status code 200) with an HTML entity

    Definition Classes
    EndpointsWithCustomErrors
  53. implicit def intQueryString: QueryStringParam[Int]
    Definition Classes
    Urls
  54. implicit def intSegment: Segment[Int]
    Definition Classes
    Urls
  55. final def internalServerError[A, R](docs: Documentation, headers: ResponseHeaders[A])(implicit tupler: Tupler.Aux[ServerError, A, R]): Response[R]
    Definition Classes
    Responses
  56. final def invalidToClientErrors(invalid: Invalid): ClientErrors
    Definition Classes
    BuiltInErrors → Errors
  57. implicit lazy val invariantFunctorRequest: play.api.libs.functional.InvariantFunctor[Request]
    Definition Classes
    EndpointsWithCustomErrors
  58. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  59. implicit def longQueryString: QueryStringParam[Long]
    Definition Classes
    Urls
  60. implicit def longSegment: Segment[Long]
    Definition Classes
    Urls
  61. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  62. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  63. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  64. 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
  65. def optRequestHeader(name: String, docs: Option[String]): (Headers) ⇒ Validated[Option[String]]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  66. def optResponseHeader(name: String, docs: Documentation = None): ResponseHeaders[Option[String]]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  67. implicit def optionalQueryStringParam[A](implicit param: QueryStringParam[A]): QueryStringParam[Option[A]]
    Definition Classes
    Urls → Urls
  68. 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
  69. val path: Path[Unit]
    Definition Classes
    Urls
  70. implicit lazy val pathPartialInvariantFunctor: PartialInvariantFunctor[Path]
    Definition Classes
    Urls → Urls
  71. 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
  72. 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
  73. def qs[A](name: String, docs: Documentation)(implicit value: QueryStringParam[A]): QueryString[A]
    Definition Classes
    Urls → Urls
  74. implicit lazy val queryStringParamPartialInvariantFunctor: PartialInvariantFunctor[QueryStringParam]
    Definition Classes
    Urls → Urls
  75. implicit lazy val queryStringPartialInvariantFunctor: PartialInvariantFunctor[QueryString]
    Definition Classes
    Urls → Urls
  76. def redirect[A](other: ⇒ Endpoint[A, _])(args: A): Response[Unit]

    other

    Endpoint to redirect to

    args

    Arguments to pass to the endpoint to generate its URL

    returns

    An HTTP response redirecting to another endpoint (using 303 code status).

    Definition Classes
    EndpointsWithCustomErrors
  77. def remainingSegments(name: String, docs: Documentation): Path[String]
    Definition Classes
    Urls → Urls
  78. implicit def repeatedQueryStringParam[A, CC[X] <: Iterable[X]](implicit param: QueryStringParam[A], factory: scala.collection.compat.Factory[A, CC[A]]): QueryStringParam[CC[A]]
    Definition Classes
    Urls → Urls
  79. def request[A, B, C, AB, Out](method: Method, url: Url[A], entity: RequestEntity[B], docs: Documentation, headers: RequestHeaders[C])(implicit tuplerAB: Tupler.Aux[A, B, AB], tuplerABC: Tupler.Aux[AB, C, Out]): Request[Out]

    Decodes a request.

    Decodes a request.

    url

    Request URL

    entity

    Request entity

    docs

    Request documentation

    headers

    Request headers

    Definition Classes
    EndpointsWithCustomErrors → Requests
  80. implicit def requestEntityPartialInvariantFunctor: PartialInvariantFunctor[RequestEntity]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  81. def requestHeader(name: String, docs: Option[String]): (Headers) ⇒ Validated[String]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  82. implicit lazy val requestHeadersPartialInvariantFunctor: PartialInvariantFunctor[RequestHeaders]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  83. implicit lazy val requestHeadersSemigroupal: Semigroupal[RequestHeaders]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  84. implicit def requestPartialInvariantFunctor: PartialInvariantFunctor[Request]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  85. def response[A, B, R](statusCode: StatusCode, entity: ResponseEntity[A], docs: Documentation = None, headers: ResponseHeaders[B])(implicit tupler: Tupler.Aux[A, B, R]): Response[R]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  86. implicit lazy val responseEntityInvariantFunctor: InvariantFunctor[ResponseEntity]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  87. def responseHeader(name: String, docs: Documentation = None): ResponseHeaders[String]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  88. implicit def responseHeadersInvariantFunctor: InvariantFunctor[ResponseHeaders]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  89. implicit def responseHeadersSemigroupal: Semigroupal[ResponseHeaders]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  90. implicit lazy val responseInvariantFunctor: InvariantFunctor[Response]
    Definition Classes
    EndpointsWithCustomErrors → Responses
  91. def routesFromEndpoints(endpoints: ToPlayHandler*): PartialFunction[RequestHeader, Handler]

    Builds a Play router out of endpoint definitions.

    Builds a Play router out of endpoint definitions.

    val routes = routesFromEndpoints(
      inc.implementedBy(x => x + 1)
    )
    Definition Classes
    EndpointsWithCustomErrors
  92. def segment[A](name: String, docs: Documentation)(implicit A: Segment[A]): Path[A]
    Definition Classes
    Urls → Urls
  93. implicit lazy val segmentPartialInvariantFunctor: PartialInvariantFunctor[Segment]
    Definition Classes
    Urls → Urls
  94. lazy val serverErrorResponse: Response[ServerError]
    Definition Classes
    Errors
  95. def serverErrorResponseEntity: ResponseEntity[Throwable]
    Definition Classes
    BuiltInErrors → BuiltInErrors → Errors
  96. final def serverErrorToThrowable(serverError: ServerError): Throwable
    Definition Classes
    BuiltInErrors → Errors
  97. def staticPathSegment(segment: String): Path[Unit]
    Definition Classes
    Urls → Urls
  98. implicit lazy val stringQueryString: QueryStringParam[String]
    Definition Classes
    Urls → Urls
  99. implicit def stringSegment: Segment[String]
    Definition Classes
    Urls → Urls
  100. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  101. lazy val textRequest: RequestEntity[String]
    Definition Classes
    EndpointsWithCustomErrors → Requests
  102. def textResponse: ResponseEntity[String]

    A text entity

    A text entity

    Definition Classes
    EndpointsWithCustomErrors → Responses
  103. final def throwableToServerError(throwable: Throwable): ServerError
    Definition Classes
    BuiltInErrors → Errors
  104. def toString(): String
    Definition Classes
    AnyRef → Any
  105. implicit lazy val urlPartialInvariantFunctor: PartialInvariantFunctor[Url]
    Definition Classes
    Urls → Urls
  106. def urlWithQueryString[A, B](path: Path[A], qs: QueryString[B])(implicit tupler: Tupler[A, B]): Url[Out]
    Definition Classes
    Urls → Urls
  107. val utf8Name: String
    Definition Classes
    Urls
  108. implicit def uuidQueryString: QueryStringParam[UUID]
    Definition Classes
    Urls
  109. implicit def uuidSegment: Segment[UUID]
    Definition Classes
    Urls
  110. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  111. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  112. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  113. final def wheneverFound[A](responseA: Response[A], notFoundDocs: Documentation): Response[Option[A]]
    Definition Classes
    Responses
  114. 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 EndpointsWithCustomErrors

Inherited from StatusCodes

Inherited from Methods

Inherited from Urls

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