endpoints.algebra

JsonEntities

trait JsonEntities extends Endpoints

Algebra interface for describing JSON entities in requests and responses.

/**
* Describes an HTTP endpoint whose:
*  - request uses verb ¬タワGET¬タン,
*  - URL is made of the segment ¬タワ/user¬タン followed by a `String` segment,
*  - response content type is JSON and contains a `User`
*/  *   val example = endpoint(get(path / "user" / segment[UUID]), jsonResponse[User])
Source
JsonEntities.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. JsonEntities
  2. Endpoints
  3. Responses
  4. Requests
  5. Methods
  6. Urls
  7. AnyRef
  8. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. abstract type Endpoint[A, B]

    Information carried by an HTTP endpoint

    Information carried by an HTTP endpoint

    Definition Classes
    Endpoints
  2. abstract type JsonRequest[A]

    Type class defining how to represent the A information as a JSON request entity

  3. abstract type JsonResponse[A]

    Type class defining how to represent the A information as a JSON response entity

  4. abstract type Method

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

    Information carried by a multiplexed HTTP endpoint.

    Information carried by a multiplexed HTTP endpoint.

    Definition Classes
    Endpoints
  6. abstract type Path[A] <: Url[A]

    An URL path carrying an A information

    An URL path carrying an A information

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

    Convenient methods for Paths.

  8. abstract type QueryString[A]

    A query string carrying an A information

    A query string carrying an A information

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

    Provides convenient methods on QueryString.

  10. abstract type QueryStringParam[A]

    A single query string parameter carrying an A information.

    A single query string parameter carrying an A information.

    Definition Classes
    Urls
  11. abstract type Request[A]

    Information carried by a whole request (headers and entity)

    Information carried by a whole request (headers and entity)

    Definition Classes
    Requests
  12. abstract type RequestEntity[A]

    Information carried by request entity

    Information carried by request entity

    Definition Classes
    Requests
  13. abstract type RequestHeaders[A]

    Information carried by requests’ headers

    Information carried by requests’ headers

    Definition Classes
    Requests
  14. abstract type Response[A]

    Information carried by a response

    Information carried by a response

    Definition Classes
    Responses
  15. abstract type Segment[A]

    An URL path segment carrying an A information.

    An URL path segment carrying an A information.

    Definition Classes
    Urls
  16. abstract type Url[A]

    An URL carrying an A information

    An URL carrying an A information

    Definition Classes
    Urls

Abstract Value Members

  1. abstract def Delete: Method

    Definition Classes
    Methods
  2. abstract def Get: Method

    Definition Classes
    Methods
  3. abstract def Post: Method

    Definition Classes
    Methods
  4. abstract def Put: Method

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

    Chains the two paths

    Chains the two paths

    Definition Classes
    Urls
  6. abstract 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
  7. abstract def emptyHeaders: RequestHeaders[Unit]

    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
  8. abstract def emptyRequest: RequestEntity[Unit]

    Empty request.

    Empty request.

    Definition Classes
    Requests
  9. abstract def emptyResponse: Response[Unit]

    Empty response.

    Empty response.

    Definition Classes
    Responses
  10. abstract def endpoint[A, B](request: Request[A], response: Response[B]): Endpoint[A, B]

    HTTP endpoint.

    HTTP endpoint.

    request

    Request

    response

    Response

    Definition Classes
    Endpoints
  11. implicit abstract def intQueryString: QueryStringParam[Int]

    Ability to define Int query string parameters

    Ability to define Int query string parameters

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

    Ability to define Int path segments

    Ability to define Int path segments

    Definition Classes
    Urls
  13. abstract def jsonRequest[A](implicit arg0: JsonRequest[A]): RequestEntity[A]

    Defines a RequestEntity[A] given an implicit JsonRequest[A]

  14. abstract def jsonResponse[A](implicit arg0: JsonResponse[A]): Response[A]

    Defines a Response[A] given an implicit JsonResponse[A]

  15. implicit abstract def longQueryString: QueryStringParam[Long]

    Query string parameter containing a Long value

    Query string parameter containing a Long value

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

    Segment containing a Long value

    Segment containing a Long value

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

    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

    Definition Classes
    Endpoints
  18. abstract def optQs[A](name: String)(implicit value: QueryStringParam[A]): QueryString[Option[A]]

    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
  19. abstract def qs[A](name: String)(implicit value: QueryStringParam[A]): QueryString[A]

    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
  20. abstract def request[A, B, C, AB](method: Method, url: Url[A], entity: RequestEntity[B] = emptyRequest, headers: RequestHeaders[C] = emptyHeaders)(implicit tuplerAB: Tupler.Aux[A, B, AB], tuplerABC: Tupler[AB, C]): Request[Out]

    Request for given parameters

    Request for given parameters

    method

    Request method

    url

    Request URL

    entity

    Request entity

    headers

    Request headers

    Definition Classes
    Requests
  21. abstract def segment[A](implicit s: Segment[A]): Path[A]

    Builds a path segment carrying an A information

    Builds a path segment carrying an A information

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

    Builds a static path segment

    Builds a static path segment

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

    Ability to define String query string parameters

    Ability to define String query string parameters

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

    Ability to define String path segments

    Ability to define String path segments

    Definition Classes
    Urls
  25. abstract def textResponse: Response[String]

    Text response.

    Text response.

    Definition Classes
    Responses
  26. abstract 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

Concrete Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

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

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

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

    Helper method to perform GET request

    Helper method to perform GET request

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

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

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

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

    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  18. val path: Path[Unit]

    An empty path.

    An empty path.

    Useful to begin a path definition:

    path / "foo" / segment[Int] /? qs[String]("bar")
    Definition Classes
    Urls
  19. final def post[A, B, C, AB](url: Url[A], entity: RequestEntity[B], headers: RequestHeaders[C] = emptyHeaders)(implicit tuplerAB: Tupler.Aux[A, B, AB], tuplerABC: Tupler[AB, C]): Request[Out]

    Helper method to perform POST request

    Helper method to perform POST request

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

    Definition Classes
    AnyRef
  21. def toString(): String

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

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

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

    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