Trait

endpoints.algebra

JsonSchemaEntities

Related Doc: package algebra

Permalink

trait JsonSchemaEntities extends JsonEntities with JsonSchemas

Partially applies the endpoints.algebra.JsonEntities algebra interface to fix the JsonRequest and JsonResponse types to be JsonSchema.

Source
JsonSchemaEntities.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JsonSchemaEntities
  2. JsonSchemas
  3. JsonEntities
  4. Endpoints
  5. Responses
  6. StatusCodes
  7. Requests
  8. SemigroupalSyntax
  9. PartialInvariantFunctorSyntax
  10. InvariantFunctorSyntax
  11. Methods
  12. Urls
  13. AnyRef
  14. 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. abstract type Enum[A] <: JsonSchema[A]

    Permalink
    Definition Classes
    JsonSchemas
  3. implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef

    Permalink
    Definition Classes
    InvariantFunctorSyntax
  4. type JsonRequest[A] = JsonSchema[A]

    Permalink

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

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

    Definition Classes
    JsonSchemaEntitiesJsonEntities
  5. type JsonResponse[A] = JsonSchema[A]

    Permalink

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

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

    Definition Classes
    JsonSchemaEntitiesJsonEntities
  6. abstract type JsonSchema[A]

    Permalink
    Definition Classes
    JsonSchemas
  7. implicit final class JsonSchemaOps[A] extends AnyRef

    Permalink
    Definition Classes
    JsonSchemas
  8. abstract type Method

    Permalink

    HTTP Method

    HTTP Method

    Definition Classes
    Methods
  9. implicit class PartialInvariantFunctorSyntax[A, F[_]] extends AnyRef

    Permalink
  10. abstract type Path[A] <: Url[A]

    Permalink

    An URL path carrying an A information

    An URL path carrying an A information

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

    Permalink

    Convenient methods for Paths.

    Convenient methods for Paths.

    Definition Classes
    Urls
  12. abstract type QueryString[A]

    Permalink

    A query string carrying an A information

    A query string carrying an A information

    QueryString values can be created with the qs operation, and can be combined with the & operation:

    val queryPageAndLang: QueryString[(Int, Option[String])] =
      qs[Int]("page") & qs[Option[String]]("lang")
    Definition Classes
    Urls
  13. implicit class QueryStringOps[A] extends AnyRef

    Permalink

    Provides convenient methods on QueryString.

    Provides convenient methods on QueryString.

    Definition Classes
    Urls
  14. 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
  15. abstract type Record[A] <: JsonSchema[A]

    Permalink
    Definition Classes
    JsonSchemas
  16. implicit final class RecordOps[A] extends AnyRef

    Permalink
    Definition Classes
    JsonSchemas
  17. 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
  18. abstract type RequestEntity[A]

    Permalink

    Information carried by request entity

    Information carried by request entity

    Definition Classes
    Requests
  19. abstract type RequestHeaders[A]

    Permalink

    Information carried by requests’ headers

    Information carried by requests’ headers

    Definition Classes
    Requests
  20. abstract type Response[A]

    Permalink

    Information carried by a response

    Information carried by a response

    Definition Classes
    Responses
  21. implicit class ResponseExtensions[A] extends AnyRef

    Permalink

    Extensions for Response.

    Extensions for Response.

    Definition Classes
    Responses
  22. abstract type Segment[A]

    Permalink

    An URL path segment carrying an A information.

    An URL path segment carrying an A information.

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

    Permalink
    Definition Classes
    SemigroupalSyntax
  24. abstract type StatusCode

    Permalink

    HTTP Status Code

    HTTP Status Code

    Definition Classes
    StatusCodes
  25. abstract type Tagged[A] <: JsonSchema[A]

    Permalink
    Definition Classes
    JsonSchemas
  26. implicit final class TaggedOps[A] extends AnyRef

    Permalink
    Definition Classes
    JsonSchemas
  27. 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 BadRequest: StatusCode

    Permalink

    4xx Client Error

    4xx Client Error

    Definition Classes
    StatusCodes
  2. abstract def Delete: Method

    Permalink
    Definition Classes
    Methods
  3. abstract def Get: Method

    Permalink
    Definition Classes
    Methods
  4. abstract def NotFound: StatusCode

    Permalink
    Definition Classes
    StatusCodes
  5. abstract def OK: StatusCode

    Permalink

    2xx Success

    2xx Success

    Definition Classes
    StatusCodes
  6. abstract def Options: Method

    Permalink
    Definition Classes
    Methods
  7. abstract def Patch: Method

    Permalink
    Definition Classes
    Methods
  8. abstract def Post: Method

    Permalink
    Definition Classes
    Methods
  9. abstract def Put: Method

    Permalink
    Definition Classes
    Methods
  10. abstract def Unauthorized: StatusCode

    Permalink
    Definition Classes
    StatusCodes
  11. implicit abstract def arrayJsonSchema[C[X] <: Seq[X], A](implicit jsonSchema: JsonSchema[A], factory: scala.collection.compat.Factory[A, C[A]]): JsonSchema[C[A]]

    Permalink
    Definition Classes
    JsonSchemas
  12. implicit abstract def bigdecimalJsonSchema: JsonSchema[BigDecimal]

    Permalink
    Definition Classes
    JsonSchemas
  13. implicit abstract def booleanJsonSchema: JsonSchema[Boolean]

    Permalink
    Definition Classes
    JsonSchemas
  14. implicit abstract def byteJsonSchema: JsonSchema[Byte]

    Permalink
    Definition Classes
    JsonSchemas
  15. 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
  16. abstract def choiceTagged[A, B](taggedA: Tagged[A], taggedB: Tagged[B]): Tagged[Either[A, B]]

    Permalink
    Definition Classes
    JsonSchemas
  17. 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
  18. implicit abstract def doubleJsonSchema: JsonSchema[Double]

    Permalink
    Definition Classes
    JsonSchemas
  19. 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.

    Use description of endpoints.algebra.Endpoints#endpoint to document empty headers.

    Definition Classes
    Requests
  20. abstract def emptyRecord: Record[Unit]

    Permalink
    Definition Classes
    JsonSchemas
  21. abstract def emptyRequest: RequestEntity[Unit]

    Permalink

    Empty request -- request without a body.

    Empty request -- request without a body. Use description of endpoints.algebra.Endpoints#endpoint to document an empty body.

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

    Permalink

    Empty response.

    Empty response.

    Definition Classes
    Responses
  23. 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
  24. abstract def enumeration[A](values: Seq[A])(encode: (A) ⇒ String)(implicit tpe: JsonSchema[String]): Enum[A]

    Permalink
    Definition Classes
    JsonSchemas
  25. abstract def field[A](name: String, documentation: Option[String])(implicit tpe: JsonSchema[A]): Record[A]

    Permalink
    Definition Classes
    JsonSchemas
  26. implicit abstract def floatJsonSchema: JsonSchema[Float]

    Permalink
    Definition Classes
    JsonSchemas
  27. abstract def header(name: String, docs: Documentation = None): RequestHeaders[String]

    Permalink
    Definition Classes
    Requests
  28. implicit abstract def intJsonSchema: JsonSchema[Int]

    Permalink
    Definition Classes
    JsonSchemas
  29. abstract def jsonRequest[A](docs: Documentation = None)(implicit arg0: JsonRequest[A]): RequestEntity[A]

    Permalink

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

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

    Definition Classes
    JsonEntities
  30. abstract def jsonResponse[A](docs: Documentation = None)(implicit arg0: JsonResponse[A]): Response[A]

    Permalink

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

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

    Definition Classes
    JsonEntities
  31. abstract def lazySchema[A](schema: ⇒ JsonSchema[A], name: String): JsonSchema[A]

    Permalink
    Definition Classes
    JsonSchemas
  32. implicit abstract def longJsonSchema: JsonSchema[Long]

    Permalink
    Definition Classes
    JsonSchemas
  33. implicit abstract def mapJsonSchema[A](implicit jsonSchema: JsonSchema[A]): JsonSchema[Map[String, A]]

    Permalink
    Definition Classes
    JsonSchemas
  34. abstract def named[A, S[T] <: JsonSchema[T]](schema: S[A], name: String): S[A]

    Permalink
    Definition Classes
    JsonSchemas
  35. abstract def optField[A](name: String, documentation: Option[String])(implicit tpe: JsonSchema[A]): Record[Option[A]]

    Permalink
    Definition Classes
    JsonSchemas
  36. abstract def optHeader(name: String, docs: Documentation = None): RequestHeaders[Option[String]]

    Permalink
    Definition Classes
    Requests
  37. implicit abstract def optionalQueryStringParam[A](implicit arg0: QueryStringParam[A]): QueryStringParam[Option[A]]

    Permalink

    Make a query string parameter optional:

    Make a query string parameter optional:

    path / "articles" /? qs[Option[Int]]("page")

    Client interpreters must omit optional query string parameters that are empty. Server interpreters must accept incoming requests whose optional query string parameters are missing. Server interpreters must report a failure for incoming requests whose optional query string parameters are present, but malformed.

    Definition Classes
    Urls
  38. implicit abstract def pathPartialInvariantFunctor: PartialInvariantFunctor[Path]

    Permalink
    Definition Classes
    Urls
  39. 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.

    Examples:

    qs[Int]("page")            // mandatory `page` parameter
    qs[Option[String]]("lang") // optional `lang` parameter
    qs[List[Long]]("id")       // repeated `id` parameter
    A

    Type of the value carried by the parameter

    name

    Parameter’s name

    Definition Classes
    Urls
  40. implicit abstract def queryStringParamPartialInvFunctor: PartialInvariantFunctor[QueryStringParam]

    Permalink
    Definition Classes
    Urls
  41. implicit abstract def queryStringPartialInvFunctor: PartialInvariantFunctor[QueryString]

    Permalink
    Definition Classes
    Urls
  42. abstract def remainingSegments(name: String = "", docs: Documentation = None): Path[String]

    Permalink

    The remaining segments of the path.

    The remaining segments of the path. The String value carried by this Path is still URL-encoded.

    Definition Classes
    Urls
  43. implicit abstract def repeatedQueryStringParam[A, CC[X] <: Iterable[X]](implicit arg0: QueryStringParam[A], factory: scala.collection.compat.Factory[A, CC[A]]): QueryStringParam[CC[A]]

    Permalink

    Support query string parameters with multiple values:

    Support query string parameters with multiple values:

    path / "articles" /? qs[List[Long]]("id")

    Server interpreters must accept incoming requests where such parameters are missing (in such a case, its value is an empty collection), and report a failure if at least one value is malformed.

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

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

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

    Permalink
    Definition Classes
    Requests
  47. abstract def request[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](method: Method, url: Url[UrlP], entity: RequestEntity[BodyP] = emptyRequest, headers: RequestHeaders[HeadersP] = emptyHeaders)(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): 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
  48. abstract def segment[A](name: String = "", docs: Documentation = None)(implicit s: Segment[A]): Path[A]

    Permalink

    A path segment carrying an A information

    A path segment carrying an A information

    Definition Classes
    Urls
  49. implicit abstract def segmentPartialInvFunctor: PartialInvariantFunctor[Segment]

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

    Permalink

    A path segment whose value is the given segment

    A path segment whose value is the given segment

    Definition Classes
    Urls
  51. implicit abstract def stringJsonSchema: JsonSchema[String]

    Permalink
    Definition Classes
    JsonSchemas
  52. implicit abstract def stringQueryString: QueryStringParam[String]

    Permalink

    Ability to define String query string parameters

    Ability to define String query string parameters

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

    Permalink

    Ability to define String path segments Servers should return an URL-decoded string value, and clients should take an URL-decoded string value.

    Ability to define String path segments Servers should return an URL-decoded string value, and clients should take an URL-decoded string value.

    Definition Classes
    Urls
  54. abstract def taggedRecord[A](recordA: Record[A], tag: String): Tagged[A]

    Permalink
    Definition Classes
    JsonSchemas
  55. abstract def textRequest(docs: Documentation = None): RequestEntity[String]

    Permalink

    Request with a String body.

    Request with a String body.

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

    Permalink

    Text response.

    Text response.

    Definition Classes
    Responses
  57. implicit abstract def urlPartialInvFunctor: PartialInvariantFunctor[Url]

    Permalink
    Definition Classes
    Urls
  58. 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
  59. implicit abstract def uuidJsonSchema: JsonSchema[UUID]

    Permalink
    Definition Classes
    JsonSchemas
  60. abstract def wheneverFound[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
  61. abstract def withDiscriminator[A](tagged: Tagged[A], discriminatorName: String): Tagged[A]

    Permalink
    Definition Classes
    JsonSchemas
  62. abstract def xmapJsonSchema[A, B](jsonSchema: JsonSchema[A], f: (A) ⇒ B, g: (B) ⇒ A): JsonSchema[B]

    Permalink
    Definition Classes
    JsonSchemas
  63. abstract def xmapRecord[A, B](record: Record[A], f: (A) ⇒ B, g: (B) ⇒ A): Record[B]

    Permalink
    Definition Classes
    JsonSchemas
  64. abstract def xmapTagged[A, B](taggedA: Tagged[A], f: (A) ⇒ B, g: (B) ⇒ A): Tagged[B]

    Permalink
    Definition Classes
    JsonSchemas
  65. abstract def zipRecords[A, B](recordA: Record[A], recordB: Record[B]): Record[(A, B)]

    Permalink
    Definition Classes
    JsonSchemas

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. implicit def booleanQueryString: QueryStringParam[Boolean]

    Permalink

    Query string parameter containing a Boolean value

    Query string parameter containing a Boolean value

    Definition Classes
    Urls
  6. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def defaultDiscriminatorName: String

    Permalink
    Definition Classes
    JsonSchemas
  8. final def delete[UrlP, HeadersP, Out](url: Url[UrlP], headers: RequestHeaders[HeadersP] = emptyHeaders)(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): Request[Out]

    Permalink

    Helper method to perform DELETE request

    Helper method to perform DELETE request

    UrlP

    Payload carried by url

    HeadersP

    Payload carried by headers

    Definition Classes
    Requests
  9. implicit def doubleQueryString: QueryStringParam[Double]

    Permalink
    Definition Classes
    Urls
  10. implicit def doubleSegment: Segment[Double]

    Permalink
    Definition Classes
    Urls
  11. 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
  12. final def eq(arg0: AnyRef): Boolean

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

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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def get[UrlP, HeadersP, Out](url: Url[UrlP], headers: RequestHeaders[HeadersP] = emptyHeaders)(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): 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
  16. final def getClass(): Class[_]

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

    Permalink
    Definition Classes
    AnyRef → Any
  18. implicit def intQueryString: QueryStringParam[Int]

    Permalink

    Ability to define Int query string parameters

    Ability to define Int query string parameters

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

    Permalink

    Ability to define Int path segments

    Ability to define Int path segments

    Definition Classes
    Urls
  20. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  21. implicit def longQueryString: QueryStringParam[Long]

    Permalink

    Query string parameter containing a Long value

    Query string parameter containing a Long value

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

    Permalink

    Segment containing a Long value

    Segment containing a Long value

    Definition Classes
    Urls
  23. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  26. 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
  27. final def post[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], headers: RequestHeaders[HeadersP] = emptyHeaders)(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): 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
  28. final def put[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], headers: RequestHeaders[HeadersP] = emptyHeaders)(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]

    Permalink

    Helper method to perform PUT request

    Helper method to perform PUT 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
  29. final def synchronized[T0](arg0: ⇒ T0): T0

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

    Permalink
    Definition Classes
    AnyRef → Any
  31. implicit def uuidQueryString: QueryStringParam[UUID]

    Permalink

    Ability to define UUID query string parameters

    Ability to define UUID query string parameters

    Definition Classes
    Urls
  32. implicit def uuidSegment: Segment[UUID]

    Permalink

    Ability to define UUID path segments

    Ability to define UUID path segments

    Definition Classes
    Urls
  33. final def wait(): Unit

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

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

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

Inherited from JsonSchemas

Inherited from JsonEntities

Inherited from Endpoints

Inherited from Responses

Inherited from StatusCodes

Inherited from Requests

Inherited from Methods

Inherited from Urls

Inherited from AnyRef

Inherited from Any

Ungrouped