Trait

endpoints.algebra

MuxEndpoints

Related Doc: package algebra

Permalink

trait MuxEndpoints extends Endpoints

Algebra interface for describing endpoints such that one endpoint can handle several types of requests and responses.

Source
MuxEndpoints.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MuxEndpoints
  2. Endpoints
  3. Responses
  4. Requests
  5. SemigroupalSyntax
  6. InvariantFunctorSyntax
  7. Methods
  8. Urls
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract type Endpoint[A, B]

    Permalink

    Information carried by an HTTP endpoint

    Information carried by an HTTP endpoint

    Definition Classes
    Endpoints
  2. implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef

    Permalink
    Definition Classes
    InvariantFunctorSyntax
  3. abstract type Method

    Permalink
    Definition Classes
    Methods
  4. abstract type MuxEndpoint[Req <: MuxRequest, Resp, Transport]

    Permalink

    Information carried by a multiplexed HTTP endpoint.

  5. abstract type Path[A] <: Url[A]

    Permalink

    An URL path carrying an A information

    An URL path carrying an A information

    Definition Classes
    Urls
  6. implicit class PathOps[A] extends AnyRef

    Permalink

    Convenient methods for Paths.

    Convenient methods for Paths.

    Definition Classes
    Urls
  7. abstract type QueryString[A]

    Permalink

    A query string carrying an A information

    A query string carrying an A information

    Definition Classes
    Urls
  8. implicit class QueryStringOps[A] extends AnyRef

    Permalink

    Provides convenient methods on QueryString.

    Provides convenient methods on QueryString.

    Definition Classes
    Urls
  9. abstract type QueryStringParam[A]

    Permalink

    A single query string parameter carrying an A information.

    A single query string parameter carrying an A information.

    Definition Classes
    Urls
  10. abstract type Request[A]

    Permalink

    Information carried by a whole request (headers and entity)

    Information carried by a whole request (headers and entity)

    Definition Classes
    Requests
  11. abstract type RequestEntity[A]

    Permalink

    Information carried by request entity

    Information carried by request entity

    Definition Classes
    Requests
  12. abstract type RequestHeaders[A]

    Permalink

    Information carried by requests’ headers

    Information carried by requests’ headers

    Definition Classes
    Requests
  13. abstract type Response[A]

    Permalink

    Information carried by a response

    Information carried by a response

    Definition Classes
    Responses
  14. abstract type Segment[A]

    Permalink

    An URL path segment carrying an A information.

    An URL path segment carrying an A information.

    Definition Classes
    Urls
  15. implicit class SemigroupalSyntax[A, F[_]] extends AnyRef

    Permalink
    Definition Classes
    SemigroupalSyntax
  16. abstract type Url[A]

    Permalink

    An URL carrying an A information

    An URL carrying an A information

    Definition Classes
    Urls

Abstract Value Members

  1. abstract def Delete: Method

    Permalink
    Definition Classes
    Methods
  2. abstract def Get: Method

    Permalink
    Definition Classes
    Methods
  3. abstract def Options: Method

    Permalink
    Definition Classes
    Methods
  4. abstract def Patch: Method

    Permalink
    Definition Classes
    Methods
  5. abstract def Post: Method

    Permalink
    Definition Classes
    Methods
  6. abstract def Put: Method

    Permalink
    Definition Classes
    Methods
  7. abstract def chainPaths[A, B](first: Path[A], second: Path[B])(implicit tupler: Tupler[A, B]): Path[Out]

    Permalink

    Chains the two paths

    Chains the two paths

    Definition Classes
    Urls
  8. abstract def combineQueryStrings[A, B](first: QueryString[A], second: QueryString[B])(implicit tupler: Tupler[A, B]): QueryString[Out]

    Permalink

    Concatenates two QueryStrings

    Concatenates two QueryStrings

    Definition Classes
    Urls
  9. abstract def emptyHeaders: RequestHeaders[Unit]

    Permalink

    No particular information.

    No particular information. Does not mean that the headers *have to* be empty. Just that, from a server point of view no information will be extracted from them, and from a client point of view no particular headers will be built in the request.

    Definition Classes
    Requests
  10. abstract def emptyRequest: RequestEntity[Unit]

    Permalink

    Empty request.

    Empty request.

    Definition Classes
    Requests
  11. abstract def emptyResponse(docs: Documentation = None): Response[Unit]

    Permalink

    Empty response.

    Empty response.

    Definition Classes
    Responses
  12. abstract def endpoint[A, B](request: Request[A], response: Response[B], summary: Documentation = None, description: Documentation = None, tags: List[String] = Nil): Endpoint[A, B]

    Permalink

    HTTP endpoint.

    HTTP endpoint.

    request

    Request

    response

    Response

    summary

    optional summary documentation

    description

    optional description documentation

    tags

    list of OpenApi tags

    Definition Classes
    Endpoints
  13. abstract def header(name: String, docs: Documentation = None): RequestHeaders[String]

    Permalink
    Definition Classes
    Requests
  14. implicit abstract def intQueryString: QueryStringParam[Int]

    Permalink

    Ability to define Int query string parameters

    Ability to define Int query string parameters

    Definition Classes
    Urls
  15. implicit abstract def intSegment: Segment[Int]

    Permalink

    Ability to define Int path segments

    Ability to define Int path segments

    Definition Classes
    Urls
  16. implicit abstract def longQueryString: QueryStringParam[Long]

    Permalink

    Query string parameter containing a Long value

    Query string parameter containing a Long value

    Definition Classes
    Urls
  17. implicit abstract def longSegment: Segment[Long]

    Permalink

    Segment containing a Long value

    Segment containing a Long value

    Definition Classes
    Urls
  18. abstract def muxEndpoint[Req <: MuxRequest, Resp, Transport](request: Request[Transport], response: Response[Transport]): MuxEndpoint[Req, Resp, Transport]

    Permalink

    Multiplexed HTTP endpoint.

    Multiplexed HTTP endpoint.

    A multiplexing endpoint makes it possible to use several request and response types in the same HTTP endpoint. In other words, it allows to define several different actions through a singe HTTP endpoint.

    Req

    The base type of possible requests

    Resp

    The base type of possible responses

    Transport

    The data type used to transport the requests and responses

    request

    The request

    response

    The response

  19. abstract def optHeader(name: String, docs: Documentation = None): RequestHeaders[Option[String]]

    Permalink
    Definition Classes
    Requests
  20. abstract def optQs[A](name: String, docs: Documentation = None)(implicit value: QueryStringParam[A]): QueryString[Option[A]]

    Permalink

    Builds a QueryString with one optional parameter of type A.

    Builds a QueryString with one optional parameter of type A.

    name

    Parameter’s name

    Definition Classes
    Urls
  21. abstract def option[A](response: Response[A], notFoundDocs: Documentation = None): Response[Option[A]]

    Permalink

    Turns a Response[A] into a Response[Option[A]].

    Turns a Response[A] into a Response[Option[A]].

    Concrete interpreters should represent None with an empty HTTP response whose status code is 404 (Not Found).

    Definition Classes
    Responses
  22. abstract def qs[A](name: String, docs: Documentation = None)(implicit value: QueryStringParam[A]): QueryString[A]

    Permalink

    Builds a QueryString with one parameter.

    Builds a QueryString with one parameter.

    A

    Type of the value carried by the parameter

    name

    Parameter’s name

    Definition Classes
    Urls
  23. implicit abstract def reqEntityInvFunctor: InvariantFunctor[RequestEntity]

    Permalink
    Definition Classes
    Requests
  24. implicit abstract def reqHeadersInvFunctor: InvariantFunctor[RequestHeaders]

    Permalink
    Definition Classes
    Requests
  25. implicit abstract def reqHeadersSemigroupal: Semigroupal[RequestHeaders]

    Permalink
    Definition Classes
    Requests
  26. abstract def request[UrlP, BodyP, HeadersP, UrlAndBodyPTupled](method: Method, url: Url[UrlP], entity: RequestEntity[BodyP] = emptyRequest, headers: RequestHeaders[HeadersP] = emptyHeaders)(implicit tuplerAB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerABC: Tupler[UrlAndBodyPTupled, HeadersP]): Request[Out]

    Permalink

    Request for given parameters

    Request for given parameters

    UrlP

    Payload carried by url

    BodyP

    Payload carried by body

    HeadersP

    Payload carried by headers

    UrlAndBodyPTupled

    Payloads of Url and Body tupled together by Tupler

    method

    Request method

    url

    Request URL

    entity

    Request entity

    headers

    Request headers

    Definition Classes
    Requests
  27. abstract def segment[A](name: String = "", docs: Documentation = None)(implicit s: Segment[A]): Path[A]

    Permalink

    Builds a path segment carrying an A information

    Builds a path segment carrying an A information

    Definition Classes
    Urls
  28. abstract def staticPathSegment(segment: String): Path[Unit]

    Permalink

    Builds a static path segment

    Builds a static path segment

    Definition Classes
    Urls
  29. implicit abstract def stringQueryString: QueryStringParam[String]

    Permalink

    Ability to define String query string parameters

    Ability to define String query string parameters

    Definition Classes
    Urls
  30. implicit abstract def stringSegment: Segment[String]

    Permalink

    Ability to define String path segments

    Ability to define String path segments

    Definition Classes
    Urls
  31. abstract def textRequest(docs: Documentation = None): RequestEntity[String]

    Permalink

    Request with string body.

    Request with string body.

    Definition Classes
    Requests
  32. abstract def textResponse(docs: Documentation = None): Response[String]

    Permalink

    Text response.

    Text response.

    Definition Classes
    Responses
  33. implicit abstract def urlInvFunctor: InvariantFunctor[Url]

    Permalink
    Definition Classes
    Urls
  34. abstract def urlWithQueryString[A, B](path: Path[A], qs: QueryString[B])(implicit tupler: Tupler[A, B]): Url[Out]

    Permalink

    Builds an URL from the given path and query string

    Builds an URL from the given path and query string

    Definition Classes
    Urls

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. implicit def dummyPathToUrl[A](p: Path[A]): Url[A]

    Permalink

    Implicit conversion to get rid of intellij errors when defining paths.

    Implicit conversion to get rid of intellij errors when defining paths. Effectively should not be called.

    Definition Classes
    Urls
  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def get[UrlP, HeadersP](url: Url[UrlP], headers: RequestHeaders[HeadersP] = emptyHeaders)(implicit tuplerAC: Tupler[UrlP, HeadersP]): Request[Out]

    Permalink

    Helper method to perform GET request

    Helper method to perform GET request

    UrlP

    Payload carried by url

    HeadersP

    Payload carried by headers

    Definition Classes
    Requests
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. val path: Path[Unit]

    Permalink

    An empty path.

    An empty path.

    Useful to begin a path definition:

    path / "foo" / segment[Int] /? qs[String]("bar")
    Definition Classes
    Urls
  18. final def post[UrlP, BodyP, HeadersP, UrlAndBodyPTupled](url: Url[UrlP], entity: RequestEntity[BodyP], headers: RequestHeaders[HeadersP] = emptyHeaders)(implicit tuplerAB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerABC: Tupler[UrlAndBodyPTupled, HeadersP]): Request[Out]

    Permalink

    Helper method to perform POST request

    Helper method to perform POST request

    UrlP

    Payload carried by url

    BodyP

    Payload carried by body

    HeadersP

    Payload carried by headers

    UrlAndBodyPTupled

    Payloads of Url and Body tupled together by Tupler

    Definition Classes
    Requests
  19. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  20. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Endpoints

Inherited from Responses

Inherited from Requests

Inherited from Methods

Inherited from Urls

Inherited from AnyRef

Inherited from Any

Ungrouped