trait JsonEntitiesFromSchemas extends JsonCodecs with JsonSchemas
Partially applies the JsonEntities algebra interface to fix the
JsonRequest
and JsonResponse
types to be JsonSchema
.
- Source
- JsonEntities.scala
- Grouped
- Alphabetic
- By Inheritance
- JsonEntitiesFromSchemas
- JsonSchemas
- TuplesSchemas
- JsonCodecs
- JsonEntities
- EndpointsWithCustomErrors
- Errors
- Responses
- StatusCodes
- Requests
- SemigroupalSyntax
- Methods
- Urls
- PartialInvariantFunctorSyntax
- InvariantFunctorSyntax
- AnyRef
- Any
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Type Members
- implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef
Extension methods for values of type
F[A]
for which there is an implicitInvariantFunctor[F]
instance.Extension methods for values of type
F[A]
for which there is an implicitInvariantFunctor[F]
instance.- Definition Classes
- InvariantFunctorSyntax
- implicit class PartialInvariantFunctorSyntax[A, F[_]] extends AnyRef
- Definition Classes
- PartialInvariantFunctorSyntax
- implicit class SemigroupalSyntax[A, F[_]] extends AnyRef
- Definition Classes
- SemigroupalSyntax
- case class CallbackDocs(method: EndpointsWithCustomErrors.Method, entity: EndpointsWithCustomErrors.RequestEntity[_], response: EndpointsWithCustomErrors.Response[_], requestDocs: Documentation = None) extends Product with Serializable
- method
HTTP method used for the callback
- entity
Contents of the callback message
- response
Expected response
- Definition Classes
- EndpointsWithCustomErrors
- case class EndpointDocs(summary: Documentation = None, description: Documentation = None, tags: List[String] = Nil, callbacks: Map[String, CallbacksDocs] = Map.empty, deprecated: Boolean = false) extends Product with Serializable
- summary
Short description
- description
Detailed description
- tags
OpenAPI tags
- callbacks
Callbacks indexed by event name
- deprecated
Indicates whether this endpoint is deprecated or not
- Definition Classes
- EndpointsWithCustomErrors
- type CallbacksDocs = Map[String, CallbackDocs]
Callbacks indexed by URL pattern
Callbacks indexed by URL pattern
- Definition Classes
- EndpointsWithCustomErrors
- See also
Swagger Documentation at https://swagger.io/docs/specification/callbacks/
- abstract type ClientErrors
Errors in a request built by a client
Errors in a request built by a client
- Definition Classes
- Errors
- abstract type Endpoint[A, B]
Information carried by an HTTP endpoint
Information carried by an HTTP endpoint
- Definition Classes
- EndpointsWithCustomErrors
- abstract type Enum[A] <: JsonSchema[A]
A JSON schema for enumerations, i.e.
A JSON schema for enumerations, i.e. types that have a restricted set of values.
- Definition Classes
- JsonSchemas
- Note
This type has implicit methods provided by the EnumOps class.
- type JsonCodec[A] = JsonSchema[A]
A JSON codec type class
A JSON codec type class
- Definition Classes
- JsonEntitiesFromSchemas → JsonCodecs
- type JsonRequest[A] = JsonCodec[A]
Type class defining how to represent the
A
information as a JSON request entityType class defining how to represent the
A
information as a JSON request entity- Definition Classes
- JsonCodecs → JsonEntities
- type JsonResponse[A] = JsonCodec[A]
Type class defining how to represent the
A
information as a JSON response entityType class defining how to represent the
A
information as a JSON response entity- Definition Classes
- JsonCodecs → JsonEntities
- abstract type JsonSchema[A]
The JSON schema of a type
A
The JSON schema of a type
A
- Definition Classes
- JsonSchemas
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and JsonSchemaOps classes.
- abstract type Method
HTTP Method
HTTP Method
- Definition Classes
- Methods
- abstract type Path[A] <: Url[A]
An URL path carrying an
A
informationAn URL path carrying an
A
information- Definition Classes
- Urls
- Note
This type has implicit methods provided by the PathOps, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.
- abstract type QueryString[A]
A query string carrying an
A
informationA query string carrying an
A
informationQueryString 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
- Note
This type has implicit methods provided by the QueryStringSyntax, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.
- abstract type QueryStringParam[A]
A query string parameter codec for type
A
.A query string parameter codec for type
A
.- Definition Classes
- Urls
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.
- abstract type Record[A] <: JsonSchema[A]
The JSON schema of a record type (case class)
A
The JSON schema of a record type (case class)
A
- Definition Classes
- JsonSchemas
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and RecordOps classes.
- 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
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax class.
- abstract type RequestEntity[A]
Information carried by request entity
Information carried by request entity
- Definition Classes
- Requests
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax class.
- abstract type RequestHeaders[A]
Information carried by requests’ headers.
Information carried by requests’ headers.
You can construct values of type
RequestHeaders
by using the operations requestHeader, optRequestHeader, or emptyRequestHeaders.- Definition Classes
- Requests
- Note
This type has implicit methods provided by the SemigroupalSyntax and PartialInvariantFunctorSyntax classes.
- abstract type Response[A]
An HTTP response (status, headers, and entity) carrying an information of type A
An HTTP response (status, headers, and entity) carrying an information of type A
- Definition Classes
- Responses
- Note
This type has implicit methods provided by the InvariantFunctorSyntax and ResponseSyntax classes
- abstract type ResponseEntity[A]
An HTTP response entity carrying an information of type A
An HTTP response entity carrying an information of type A
- Definition Classes
- Responses
- Note
This type has implicit methods provided by the InvariantFunctorSyntax class
- abstract type ResponseHeaders[A]
Information carried by responses’ headers.
Information carried by responses’ headers.
You can construct values of type
ResponseHeaders
by using the operations responseHeader, optResponseHeader, or emptyResponseHeaders.- Definition Classes
- Responses
- Note
This type has implicit methods provided by the SemigroupalSyntax and InvariantFunctorSyntax classes.
- abstract type Segment[A]
An URL path segment codec for type
A
.An URL path segment codec for type
A
.- Definition Classes
- Urls
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.
- abstract type ServerError
Error raised by the business logic of a server
Error raised by the business logic of a server
- Definition Classes
- Errors
- abstract type StatusCode
HTTP Status Code
HTTP Status Code
- Definition Classes
- StatusCodes
- abstract type Tagged[A] <: JsonSchema[A]
A JSON schema containing the name of the type
A
.A JSON schema containing the name of the type
A
. Tagged schemas are useful to describe sum types (sealed traits).- Definition Classes
- JsonSchemas
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and TaggedOps classes.
- abstract type Url[A]
An URL carrying an
A
informationAn URL carrying an
A
information- Definition Classes
- Urls
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax and InvariantFunctorSyntax classes.
- implicit final class EnumOps[A] extends JsonSchemaDocumentationOps[A]
- Definition Classes
- JsonSchemas
- sealed trait JsonSchemaDocumentationOps[A] extends AnyRef
Documentation related methods for annotating schemas.
Documentation related methods for annotating schemas. Encoder and decoder interpreters ignore this information.
- Definition Classes
- JsonSchemas
- implicit final class JsonSchemaOps[A] extends JsonSchemaDocumentationOps[A]
Implicit methods for values of type JsonSchema
Implicit methods for values of type JsonSchema
- Definition Classes
- JsonSchemas
- implicit final class RecordOps[A] extends JsonSchemaDocumentationOps[A]
Implicit methods for values of type Record
Implicit methods for values of type Record
- Definition Classes
- JsonSchemas
- implicit final class TaggedOps[A] extends JsonSchemaDocumentationOps[A]
- Definition Classes
- JsonSchemas
- implicit class ResponseSyntax[A] extends AnyRef
Extension methods for Response.
- implicit class PathOps[A] extends AnyRef
Convenient methods for Paths.
- implicit class QueryStringSyntax[A] extends AnyRef
Extension methods on QueryString.
Extension methods on QueryString.
- Definition Classes
- Urls
Abstract Value Members
- abstract def Accepted: StatusCode
- Definition Classes
- StatusCodes
- abstract def BadRequest: StatusCode
- Definition Classes
- StatusCodes
- Note
You should use the
badRequest
constructor provided by the endpoints.algebra.Responses trait to ensure that errors produced by endpoints are consistently handled by interpreters.
- abstract def Created: StatusCode
- Definition Classes
- StatusCodes
- abstract def Delete: Method
- Definition Classes
- Methods
- abstract def Forbidden: StatusCode
- Definition Classes
- StatusCodes
- abstract def Get: Method
- Definition Classes
- Methods
- abstract def InternalServerError: StatusCode
- Definition Classes
- StatusCodes
- Note
You should use the
internalServerError
constructor provided by the endpoints.algebra.Responses trait to ensure that errors produced by endpoints are consistently handled by interpreters.
- abstract def NoContent: StatusCode
- Definition Classes
- StatusCodes
- abstract def NotFound: StatusCode
- Definition Classes
- StatusCodes
- abstract def NotImplemented: StatusCode
- Definition Classes
- StatusCodes
- abstract def OK: StatusCode
- Definition Classes
- StatusCodes
- abstract def Options: Method
- Definition Classes
- Methods
- abstract def Patch: Method
- Definition Classes
- Methods
- abstract def Post: Method
- Definition Classes
- Methods
- abstract def Put: Method
- Definition Classes
- Methods
- abstract def Unauthorized: StatusCode
- Definition Classes
- StatusCodes
- implicit abstract def arrayJsonSchema[C[X] <: Seq[X], A](implicit jsonSchema: JsonSchema[A], factory: Factory[A, C[A]]): JsonSchema[C[A]]
A JSON schema for sequences
A JSON schema for sequences
- Definition Classes
- JsonSchemas
- implicit abstract def bigdecimalJsonSchema: JsonSchema[BigDecimal]
A JSON schema for type
BigDecimal
A JSON schema for type
BigDecimal
- Definition Classes
- JsonSchemas
- implicit abstract def booleanJsonSchema: JsonSchema[Boolean]
A JSON schema for type
Boolean
A JSON schema for type
Boolean
- Definition Classes
- JsonSchemas
- implicit abstract def byteJsonSchema: JsonSchema[Byte]
A JSON schema for type
Byte
A JSON schema for type
Byte
- Definition Classes
- JsonSchemas
- 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
- abstract def choiceResponse[A, B](responseA: Response[A], responseB: Response[B]): Response[Either[A, B]]
Alternative between two possible choices of responses.
Alternative between two possible choices of responses.
Server interpreters construct either one or the other response. Client interpreters accept either one or the other response. Documentation interpreters list all the possible responses.
- Definition Classes
- Responses
- abstract def choiceTagged[A, B](taggedA: Tagged[A], taggedB: Tagged[B]): Tagged[Either[A, B]]
The JSON schema of a coproduct made of the given alternative tagged records
The JSON schema of a coproduct made of the given alternative tagged records
- Definition Classes
- JsonSchemas
- abstract def clientErrorsResponseEntity: ResponseEntity[ClientErrors]
Format of the response entity carrying the client errors.
Format of the response entity carrying the client errors.
- Definition Classes
- Errors
- abstract def clientErrorsToInvalid(clientErrors: ClientErrors): Invalid
Convert the ClientErrors type into the endpoints internal client error type
Convert the ClientErrors type into the endpoints internal client error type
- Definition Classes
- Errors
- abstract def combineQueryStrings[A, B](first: QueryString[A], second: QueryString[B])(implicit tupler: Tupler[A, B]): QueryString[Out]
Concatenates two
QueryString
sConcatenates two
QueryString
s- Definition Classes
- Urls
- implicit abstract def doubleJsonSchema: JsonSchema[Double]
A JSON schema for type
Double
A JSON schema for type
Double
- Definition Classes
- JsonSchemas
- implicit abstract def emptyRecord: Record[Unit]
The JSON schema of a record with no fields
The JSON schema of a record with no fields
- Definition Classes
- JsonSchemas
- abstract def emptyRequest: RequestEntity[Unit]
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
- abstract def emptyRequestHeaders: 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.
Use
description
of endpoints.algebra.Endpoints#endpoint to document empty headers.- Definition Classes
- Requests
- abstract def emptyResponse: ResponseEntity[Unit]
Empty response entity
Empty response entity
- Definition Classes
- Responses
- abstract def emptyResponseHeaders: ResponseHeaders[Unit]
No particular response header.
No particular response header. Client interpreters should ignore information carried by response headers.
- Definition Classes
- Responses
- abstract def endpoint[A, B](request: Request[A], response: Response[B], docs: EndpointDocs = EndpointDocs()): Endpoint[A, B]
HTTP endpoint.
HTTP endpoint.
- request
Request
- response
Response
- docs
Documentation (used by documentation interpreters)
- Definition Classes
- EndpointsWithCustomErrors
- abstract def enumeration[A](values: Seq[A])(tpe: JsonSchema[A]): Enum[A]
Promotes a schema to an enumeration.
Promotes a schema to an enumeration. Decoding fails if the input string does not match the encoded values of any of the possible values. Encoding does never fail, even if the value is not contained in the set of possible values.
- Definition Classes
- JsonSchemas
- abstract def field[A](name: String, documentation: Option[String] = None)(implicit tpe: JsonSchema[A]): Record[A]
The JSON schema of a record with a single field
name
of typeA
The JSON schema of a record with a single field
name
of typeA
- Definition Classes
- JsonSchemas
- implicit abstract def floatJsonSchema: JsonSchema[Float]
A JSON schema for type
Float
A JSON schema for type
Float
- Definition Classes
- JsonSchemas
- implicit abstract def intJsonSchema: JsonSchema[Int]
A JSON schema for type
Int
A JSON schema for type
Int
- Definition Classes
- JsonSchemas
- abstract def invalidToClientErrors(invalid: Invalid): ClientErrors
Convert the endpoints internal client error type into the ClientErrors type
Convert the endpoints internal client error type into the ClientErrors type
- Definition Classes
- Errors
- abstract def jsonRequest[A](implicit arg0: JsonRequest[A]): RequestEntity[A]
Defines a
RequestEntity[A]
given an implicitJsonRequest[A]
Defines a
RequestEntity[A]
given an implicitJsonRequest[A]
- Definition Classes
- JsonEntities
- abstract def jsonResponse[A](implicit arg0: JsonResponse[A]): ResponseEntity[A]
Defines a
Response[A]
given an implicitJsonResponse[A]
Defines a
Response[A]
given an implicitJsonResponse[A]
- Definition Classes
- JsonEntities
- implicit abstract def jsonSchemaPartialInvFunctor: PartialInvariantFunctor[JsonSchema]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- JsonSchemas
- See also
- abstract def lazyRecord[A](schema: => Record[A], name: String): JsonSchema[A]
Captures a lazy reference to a JSON schema currently being defined:
Captures a lazy reference to a JSON schema currently being defined:
case class Recursive(next: Option[Recursive]) val recursiveSchema: Record[Recursive] = ( optField("next")(lazyRecord(recursiveSchema, "Rec")) ).xmap(Recursive)(_.next)
Interpreters should return a JsonSchema value that does not evaluate the given
schema
unless it is effectively used.- schema
The record JSON schema whose evaluation should be delayed
- name
A unique name identifying the schema
- Definition Classes
- JsonSchemas
- abstract def lazyTagged[A](schema: => Tagged[A], name: String): JsonSchema[A]
Captures a lazy reference to a JSON schema currently being defined.
Captures a lazy reference to a JSON schema currently being defined.
Interpreters should return a JsonSchema value that does not evaluate the given
schema
unless it is effectively used.- schema
The tagged JSON schema whose evaluation should be delayed
- name
A unique name identifying the schema
- Definition Classes
- JsonSchemas
- implicit abstract def longJsonSchema: JsonSchema[Long]
A JSON schema for type
Long
A JSON schema for type
Long
- Definition Classes
- JsonSchemas
- implicit abstract def mapJsonSchema[A](implicit jsonSchema: JsonSchema[A]): JsonSchema[Map[String, A]]
A JSON schema for maps with string keys
A JSON schema for maps with string keys
- Definition Classes
- JsonSchemas
- abstract def namedEnum[A](schema: Enum[A], name: String): Enum[A]
Annotates the enum JSON schema with a name
Annotates the enum JSON schema with a name
- Definition Classes
- JsonSchemas
- abstract def namedRecord[A](schema: Record[A], name: String): Record[A]
Annotates the record JSON schema with a name
Annotates the record JSON schema with a name
- Definition Classes
- JsonSchemas
- abstract def namedTagged[A](schema: Tagged[A], name: String): Tagged[A]
Annotates the tagged JSON schema with a name
Annotates the tagged JSON schema with a name
- Definition Classes
- JsonSchemas
- abstract def optField[A](name: String, documentation: Option[String] = None)(implicit tpe: JsonSchema[A]): Record[Option[A]]
The JSON schema of a record with a single optional field
name
of typeA
The JSON schema of a record with a single optional field
name
of typeA
Decoder interpreters successfully decode
None
if the field is absent or if it is present but has the valuenull
. Decoder interpreters fail if the field is present but contains an invalid value. Encoder interpreters can omit the field or emit a field with anull
value. Documentation interpreters must mark the field as optional.- Definition Classes
- JsonSchemas
- abstract def optRequestHeader(name: String, docs: Documentation = None): RequestHeaders[Option[String]]
An optional request header
- abstract def optResponseHeader(name: String, docs: Documentation = None): ResponseHeaders[Option[String]]
Response headers optionally containing a header with the given
name
.Response headers optionally containing a header with the given
name
. Client interpreters should model the header value asSome[String]
, orNone
if the response header is missing. Server interpreters should produce such a response header. Documentation interpreters should document this header.- Definition Classes
- Responses
- implicit abstract def optionalQueryStringParam[A](implicit arg0: QueryStringParam[A]): QueryStringParam[Option[A]]
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
- abstract def orFallbackToJsonSchema[A, B](schemaA: JsonSchema[A], schemaB: JsonSchema[B]): JsonSchema[Either[A, B]]
A schema that can be either
schemaA
orschemaB
.A schema that can be either
schemaA
orschemaB
.Documentation interpreter produce a
oneOf
JSON schema. Encoder interpreters forward to eitherschemaA
orschemaB
. Decoder interpreters first try to decode withschemaA
, and fallback toschemaB
in case of failure.The difference between this operation and the operation
orElse
on “tagged” schemas is that this operation does not rely on a discriminator field between the alternative schemas. As a consequence, decoding is slower than with “tagged” schemas and provides less precise error messages.- Definition Classes
- JsonSchemas
- Note
Be careful to use disjoint schemas for
A
andB
(none must be a subtype of the other), otherwise, a value of typeB
might also be successfully decoded as a value of typeA
, and this could have surprising consequences.
- implicit abstract def pathPartialInvariantFunctor: PartialInvariantFunctor[Path]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- Urls
- See also
- abstract def qs[A](name: String, docs: Documentation = None)(implicit value: QueryStringParam[A]): QueryString[A]
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
- implicit abstract def queryStringParamPartialInvariantFunctor: PartialInvariantFunctor[QueryStringParam]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- Urls
- See also
- implicit abstract def queryStringPartialInvariantFunctor: PartialInvariantFunctor[QueryString]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- Urls
- See also
- implicit abstract def recordPartialInvFunctor: PartialInvariantFunctor[Record]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- JsonSchemas
- See also
- abstract def remainingSegments(name: String = "", docs: Documentation = None): Path[String]
The remaining segments of the path.
The remaining segments of the path. The
String
value carried by thisPath
is still URL-encoded.- Definition Classes
- Urls
- implicit abstract def repeatedQueryStringParam[A, CC[X] <: Iterable[X]](implicit arg0: QueryStringParam[A], factory: Factory[A, CC[A]]): QueryStringParam[CC[A]]
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
- abstract 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]
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
- docs
Request documentation
- headers
Request headers
- Definition Classes
- Requests
- implicit abstract def requestEntityPartialInvariantFunctor: PartialInvariantFunctor[RequestEntity]
Provides the operations
xmap
andxmapPartial
.Provides the operations
xmap
andxmapPartial
.- Definition Classes
- Requests
- See also
- abstract def requestHeader(name: String, docs: Documentation = None): RequestHeaders[String]
A required request header
- implicit abstract def requestHeadersPartialInvariantFunctor: PartialInvariantFunctor[RequestHeaders]
Provides the operations
xmap
andxmapPartial
.Provides the operations
xmap
andxmapPartial
.- Definition Classes
- Requests
- See also
- implicit abstract def requestHeadersSemigroupal: Semigroupal[RequestHeaders]
Provides
++
operation.Provides
++
operation.- Definition Classes
- Requests
- See also
- implicit abstract def requestPartialInvariantFunctor: PartialInvariantFunctor[Request]
Provides the operations
xmap
andxmapPartial
.Provides the operations
xmap
andxmapPartial
.- Definition Classes
- Requests
- See also
- abstract def response[A, B, R](statusCode: StatusCode, entity: ResponseEntity[A], docs: Documentation = None, headers: ResponseHeaders[B] = emptyResponseHeaders)(implicit tupler: Tupler.Aux[A, B, R]): Response[R]
Server interpreters construct a response with the given status and entity.
Server interpreters construct a response with the given status and entity. Client interpreters accept a response only if it has a corresponding status code.
- statusCode
Response status code
- entity
Response entity
- docs
Response documentation
- headers
Response headers
- Definition Classes
- Responses
- implicit abstract def responseEntityInvariantFunctor: InvariantFunctor[ResponseEntity]
- Definition Classes
- Responses
- abstract def responseHeader(name: String, docs: Documentation = None): ResponseHeaders[String]
Response headers containing a header with the given
name
.Response headers containing a header with the given
name
. Client interpreters should model the header value asString
, or fail if the response header is missing. Server interpreters should produce such a response header. Documentation interpreters should document this header.Example:
val versionedResource: Endpoint[Unit, (SomeResource, String)] = endpoint( get(path / "versioned-resource"), ok( jsonResponse[SomeResource], headers = responseHeader("ETag") ) )
- Definition Classes
- Responses
- implicit abstract def responseHeadersInvariantFunctor: InvariantFunctor[ResponseHeaders]
Provides
xmap
operation.Provides
xmap
operation.- Definition Classes
- Responses
- See also
- implicit abstract def responseHeadersSemigroupal: Semigroupal[ResponseHeaders]
Provides
++
operation.Provides
++
operation.- Definition Classes
- Responses
- See also
- implicit abstract def responseInvariantFunctor: InvariantFunctor[Response]
Provides the operation
xmap
to the typeResponse
Provides the operation
xmap
to the typeResponse
- Definition Classes
- Responses
- See also
- abstract def segment[A](name: String = "", docs: Documentation = None)(implicit s: Segment[A]): Path[A]
A path segment carrying an
A
informationA path segment carrying an
A
information- Definition Classes
- Urls
- implicit abstract def segmentPartialInvariantFunctor: PartialInvariantFunctor[Segment]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- Urls
- See also
- abstract def serverErrorResponseEntity: ResponseEntity[ServerError]
Format of the response entity carrying the server error.
Format of the response entity carrying the server error.
- Definition Classes
- Errors
- abstract def serverErrorToThrowable(serverError: ServerError): Throwable
Convert the ServerError type into the endpoints internal server error type
Convert the ServerError type into the endpoints internal server error type
- Definition Classes
- Errors
- abstract def staticPathSegment(segment: String): Path[Unit]
A path segment whose value is the given
segment
A path segment whose value is the given
segment
- Definition Classes
- Urls
- abstract def stringJsonSchema(format: Option[String]): JsonSchema[String]
A JSON schema for type
String
.A JSON schema for type
String
.- format
An additional semantic information about the underlying format of the string
- Definition Classes
- JsonSchemas
- See also
https://json-schema.org/understanding-json-schema/reference/string.html#format
- implicit abstract def stringQueryString: QueryStringParam[String]
Ability to define
String
query string parametersAbility to define
String
query string parameters- Definition Classes
- Urls
- implicit abstract def stringSegment: Segment[String]
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
- implicit abstract def taggedPartialInvFunctor: PartialInvariantFunctor[Tagged]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- JsonSchemas
- See also
- abstract def taggedRecord[A](recordA: Record[A], tag: String): Tagged[A]
Tags a schema for type
A
with the given tag nameTags a schema for type
A
with the given tag name- Definition Classes
- JsonSchemas
- abstract def textRequest: RequestEntity[String]
Request with a
String
body.Request with a
String
body.- Definition Classes
- Requests
- abstract def textResponse: ResponseEntity[String]
Text response entity
Text response entity
- Definition Classes
- Responses
- abstract def throwableToServerError(throwable: Throwable): ServerError
Convert the endpoints internal server error type into the ServerError type
Convert the endpoints internal server error type into the ServerError type
- Definition Classes
- Errors
- implicit abstract def tuple10JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)]
A JSON schema for a tuple of 10 elements.
A JSON schema for a tuple of 10 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple11JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)]
A JSON schema for a tuple of 11 elements.
A JSON schema for a tuple of 11 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple12JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)]
A JSON schema for a tuple of 12 elements.
A JSON schema for a tuple of 12 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple13JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)]
A JSON schema for a tuple of 13 elements.
A JSON schema for a tuple of 13 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple14JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)]
A JSON schema for a tuple of 14 elements.
A JSON schema for a tuple of 14 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple15JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)]
A JSON schema for a tuple of 15 elements.
A JSON schema for a tuple of 15 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple16JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)]
A JSON schema for a tuple of 16 elements.
A JSON schema for a tuple of 16 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple17JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)]
A JSON schema for a tuple of 17 elements.
A JSON schema for a tuple of 17 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple18JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)]
A JSON schema for a tuple of 18 elements.
A JSON schema for a tuple of 18 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple19JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18], schema19: JsonSchema[T19]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)]
A JSON schema for a tuple of 19 elements.
A JSON schema for a tuple of 19 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple20JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18], schema19: JsonSchema[T19], schema20: JsonSchema[T20]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)]
A JSON schema for a tuple of 20 elements.
A JSON schema for a tuple of 20 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple21JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18], schema19: JsonSchema[T19], schema20: JsonSchema[T20], schema21: JsonSchema[T21]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)]
A JSON schema for a tuple of 21 elements.
A JSON schema for a tuple of 21 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple22JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9], schema10: JsonSchema[T10], schema11: JsonSchema[T11], schema12: JsonSchema[T12], schema13: JsonSchema[T13], schema14: JsonSchema[T14], schema15: JsonSchema[T15], schema16: JsonSchema[T16], schema17: JsonSchema[T17], schema18: JsonSchema[T18], schema19: JsonSchema[T19], schema20: JsonSchema[T20], schema21: JsonSchema[T21], schema22: JsonSchema[T22]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)]
A JSON schema for a tuple of 22 elements.
A JSON schema for a tuple of 22 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple2JsonSchema[T1, T2](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2]): JsonSchema[(T1, T2)]
A JSON schema for a tuple of 2 elements.
A JSON schema for a tuple of 2 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple3JsonSchema[T1, T2, T3](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3]): JsonSchema[(T1, T2, T3)]
A JSON schema for a tuple of 3 elements.
A JSON schema for a tuple of 3 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple4JsonSchema[T1, T2, T3, T4](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4]): JsonSchema[(T1, T2, T3, T4)]
A JSON schema for a tuple of 4 elements.
A JSON schema for a tuple of 4 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple5JsonSchema[T1, T2, T3, T4, T5](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5]): JsonSchema[(T1, T2, T3, T4, T5)]
A JSON schema for a tuple of 5 elements.
A JSON schema for a tuple of 5 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple6JsonSchema[T1, T2, T3, T4, T5, T6](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6]): JsonSchema[(T1, T2, T3, T4, T5, T6)]
A JSON schema for a tuple of 6 elements.
A JSON schema for a tuple of 6 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple7JsonSchema[T1, T2, T3, T4, T5, T6, T7](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7)]
A JSON schema for a tuple of 7 elements.
A JSON schema for a tuple of 7 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple8JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8)]
A JSON schema for a tuple of 8 elements.
A JSON schema for a tuple of 8 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def tuple9JsonSchema[T1, T2, T3, T4, T5, T6, T7, T8, T9](implicit schema1: JsonSchema[T1], schema2: JsonSchema[T2], schema3: JsonSchema[T3], schema4: JsonSchema[T4], schema5: JsonSchema[T5], schema6: JsonSchema[T6], schema7: JsonSchema[T7], schema8: JsonSchema[T8], schema9: JsonSchema[T9]): JsonSchema[(T1, T2, T3, T4, T5, T6, T7, T8, T9)]
A JSON schema for a tuple of 9 elements.
A JSON schema for a tuple of 9 elements.
Tuples are represented with JSON arrays, as documented in https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation.
- Definition Classes
- TuplesSchemas
- implicit abstract def urlPartialInvariantFunctor: PartialInvariantFunctor[Url]
Provides
xmap
andxmapPartial
operationsProvides
xmap
andxmapPartial
operations- Definition Classes
- Urls
- See also
- 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
- abstract def withDescriptionEnum[A](enum: Enum[A], description: String): Enum[A]
Add a description to the given enum JSON schema
Add a description to the given enum JSON schema
- Definition Classes
- JsonSchemas
- abstract def withDescriptionJsonSchema[A](schema: JsonSchema[A], description: String): JsonSchema[A]
Add a description to the given JSON schema
Add a description to the given JSON schema
- Definition Classes
- JsonSchemas
- abstract def withDescriptionRecord[A](record: Record[A], description: String): Record[A]
Add a description to the given record JSON schema
Add a description to the given record JSON schema
- Definition Classes
- JsonSchemas
- abstract def withDescriptionTagged[A](tagged: Tagged[A], description: String): Tagged[A]
Add a description to the given tagged JSON schema
Add a description to the given tagged JSON schema
- Definition Classes
- JsonSchemas
- abstract def withDiscriminatorTagged[A](tagged: Tagged[A], discriminatorName: String): Tagged[A]
Allows to specify name of discriminator field for sum type
Allows to specify name of discriminator field for sum type
- Definition Classes
- JsonSchemas
- abstract def withExampleEnum[A](enum: Enum[A], example: A): Enum[A]
Include an example value within the given enum JSON schema
Include an example value within the given enum JSON schema
- Definition Classes
- JsonSchemas
- abstract def withExampleJsonSchema[A](schema: JsonSchema[A], example: A): JsonSchema[A]
Include an example value within the given JSON schema
Include an example value within the given JSON schema
- Definition Classes
- JsonSchemas
- abstract def withExampleRecord[A](record: Record[A], example: A): Record[A]
Include an example value within the given record JSON schema
Include an example value within the given record JSON schema
- Definition Classes
- JsonSchemas
- abstract def withExampleTagged[A](tagged: Tagged[A], example: A): Tagged[A]
Include an example value within the given tagged JSON schema
Include an example value within the given tagged JSON schema
- Definition Classes
- JsonSchemas
- abstract def withTitleEnum[A](enum: Enum[A], title: String): Enum[A]
Add a title to the given enum JSON schema
Add a title to the given enum JSON schema
- Definition Classes
- JsonSchemas
- abstract def withTitleJsonSchema[A](schema: JsonSchema[A], title: String): JsonSchema[A]
Add a title to the given schema
Add a title to the given schema
- Definition Classes
- JsonSchemas
- abstract def withTitleRecord[A](record: Record[A], title: String): Record[A]
Add a title to the given record JSON schema
Add a title to the given record JSON schema
- Definition Classes
- JsonSchemas
- abstract def withTitleTagged[A](tagged: Tagged[A], title: String): Tagged[A]
Add a title to the given tagged JSON schema
Add a title to the given tagged JSON schema
- Definition Classes
- JsonSchemas
- abstract def zipRecords[A, B](recordA: Record[A], recordB: Record[B])(implicit t: Tupler[A, B]): Record[Out]
The JSON schema of a record merging the fields of the two given records
The JSON schema of a record merging the fields of the two given records
- Definition Classes
- JsonSchemas
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- def ->[B](y: B): (JsonEntitiesFromSchemas, B)
- Implicit
- This member is added by an implicit conversion from JsonEntitiesFromSchemas toArrowAssoc[JsonEntitiesFromSchemas] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @inline()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- final def badRequest[A, R](docs: Documentation = None, headers: ResponseHeaders[A] = emptyResponseHeaders)(implicit tupler: Tupler.Aux[ClientErrors, A, R]): Response[R]
Bad Request (400) response, with an entity of type
ClientErrors
.Bad Request (400) response, with an entity of type
ClientErrors
.- Definition Classes
- Responses
- See also
endpoints.algebra.Errors and endpoints.algebra.BuiltInErrors
- implicit def booleanQueryString: QueryStringParam[Boolean]
Query string parameter containing a
Boolean
valueQuery string parameter containing a
Boolean
value- Definition Classes
- Urls
- lazy val clientErrorsResponse: Response[ClientErrors]
Response used by the endpoints library when decoding a request fails.
Response used by the endpoints library when decoding a request fails.
The provided implementation forwards to
badRequest
.- Definition Classes
- Errors
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def defaultDiscriminatorName: String
Default discriminator field name for sum types.
Default discriminator field name for sum types.
It defaults to "type", but you can override it twofold: - by overriding this field you can change default discriminator name algebra-wide - by using
withDiscriminator
you can specify discriminator field name for specific sum type- Definition Classes
- JsonSchemas
- implicit final def defaultStringJsonSchema: JsonSchema[String]
A JSON schema for type
String
A JSON schema for type
String
- Definition Classes
- JsonSchemas
- final def delete[UrlP, HeadersP, Out](url: Url[UrlP], docs: Documentation = None, headers: RequestHeaders[HeadersP] = emptyRequestHeaders)(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): Request[Out]
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
- implicit def doubleQueryString: QueryStringParam[Double]
Codec for query string parameters of type
Double
Codec for query string parameters of type
Double
- Definition Classes
- Urls
- implicit def doubleSegment: Segment[Double]
Segment codec for type
Double
Segment codec for type
Double
- Definition Classes
- Urls
- implicit def dummyPathToUrl[A](p: Path[A]): Url[A]
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
- See also
- def ensuring(cond: (JsonEntitiesFromSchemas) => Boolean, msg: => Any): JsonEntitiesFromSchemas
- Implicit
- This member is added by an implicit conversion from JsonEntitiesFromSchemas toEnsuring[JsonEntitiesFromSchemas] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (JsonEntitiesFromSchemas) => Boolean): JsonEntitiesFromSchemas
- Implicit
- This member is added by an implicit conversion from JsonEntitiesFromSchemas toEnsuring[JsonEntitiesFromSchemas] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): JsonEntitiesFromSchemas
- Implicit
- This member is added by an implicit conversion from JsonEntitiesFromSchemas toEnsuring[JsonEntitiesFromSchemas] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): JsonEntitiesFromSchemas
- Implicit
- This member is added by an implicit conversion from JsonEntitiesFromSchemas toEnsuring[JsonEntitiesFromSchemas] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from JsonEntitiesFromSchemas toStringFormat[JsonEntitiesFromSchemas] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
- final def get[UrlP, HeadersP, Out](url: Url[UrlP], docs: Documentation = None, headers: RequestHeaders[HeadersP] = emptyRequestHeaders)(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): Request[Out]
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
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- implicit def intQueryString: QueryStringParam[Int]
Ability to define
Int
query string parametersAbility to define
Int
query string parameters- Definition Classes
- Urls
- implicit def intSegment: Segment[Int]
Ability to define
Int
path segmentsAbility to define
Int
path segments- Definition Classes
- Urls
- final def internalServerError[A, R](docs: Documentation = None, headers: ResponseHeaders[A] = emptyResponseHeaders)(implicit tupler: Tupler.Aux[ServerError, A, R]): Response[R]
Internal Server Error (500) response, with an entity of type
ServerError
.Internal Server Error (500) response, with an entity of type
ServerError
.- Definition Classes
- Responses
- See also
endpoints.algebra.Errors and endpoints.algebra.BuiltInErrors
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def literal[A](value: A)(implicit tpe: JsonSchema[A]): JsonSchema[Unit]
A schema for a statically known value.
A schema for a statically known value.
Encoders always produce the given
value
, encoded according totpe
. Decoders first try to decode incoming values with the giventpe
schema, and then check that it is equal to the givenvalue
.This is useful to model schemas of objects containing extra fields that are absent from their Scala representation. For example, here is a schema for a GeoJSON point:
case class Point(lon: Double, lat: Double) val pointSchema = ( field("type")(literal("Point")) zip field[(Double, Double)]("coordinates") ).xmap(Point.tupled)(p => (p.lon, p.lat))
- Definition Classes
- JsonSchemas
- implicit def longQueryString: QueryStringParam[Long]
Query string parameter containing a
Long
valueQuery string parameter containing a
Long
value- Definition Classes
- Urls
- implicit def longSegment: Segment[Long]
Segment containing a
Long
valueSegment containing a
Long
value- Definition Classes
- Urls
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def ok[A, B, R](entity: ResponseEntity[A], docs: Documentation = None, headers: ResponseHeaders[B] = emptyResponseHeaders)(implicit tupler: Tupler.Aux[A, B, R]): Response[R]
OK (200) Response with the given entity
OK (200) Response with the given entity
- Definition Classes
- Responses
- 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
- final def post[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], docs: Documentation = None, headers: RequestHeaders[HeadersP] = emptyRequestHeaders)(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
Helper method to perform POST request
- final def put[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], docs: Documentation = None, headers: RequestHeaders[HeadersP] = emptyRequestHeaders)(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): Request[Out]
Helper method to perform PUT request
- lazy val serverErrorResponse: Response[ServerError]
Response used by the endpoints library when the business logic of an endpoint fails.
Response used by the endpoints library when the business logic of an endpoint fails.
The provided implementation forwards to
internalServerError
- Definition Classes
- Errors
- final def stringEnumeration[A](values: Seq[A])(encode: (A) => String)(implicit tpe: JsonSchema[String]): Enum[A]
Convenient constructor for enumerations represented by string values.
Convenient constructor for enumerations represented by string values.
- Definition Classes
- JsonSchemas
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def tryParseString[A](type: String)(parse: (String) => A): (String) => Validated[A]
- Definition Classes
- Urls
- implicit final lazy val uuidJsonSchema: JsonSchema[UUID]
A JSON schema for type
UUID
A JSON schema for type
UUID
- Definition Classes
- JsonSchemas
- implicit def uuidQueryString: QueryStringParam[UUID]
Ability to define
UUID
query string parametersAbility to define
UUID
query string parameters- Definition Classes
- Urls
- implicit def uuidSegment: Segment[UUID]
Ability to define
UUID
path segmentsAbility to define
UUID
path segments- Definition Classes
- Urls
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wheneverFound[A](responseA: Response[A], notFoundDocs: Documentation = None): Response[Option[A]]
Turns a
Response[A]
into aResponse[Option[A]]
.Turns a
Response[A]
into aResponse[Option[A]]
.Interpreters represent
None
with an empty HTTP response whose status code is 404 (Not Found).- Definition Classes
- Responses
Deprecated Value Members
- def →[B](y: B): (JsonEntitiesFromSchemas, B)
- Implicit
- This member is added by an implicit conversion from JsonEntitiesFromSchemas toArrowAssoc[JsonEntitiesFromSchemas] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.
Inherited from JsonSchemas
Inherited from TuplesSchemas
Inherited from JsonCodecs
Inherited from JsonEntities
Inherited from EndpointsWithCustomErrors
Inherited from Errors
Inherited from Responses
Inherited from StatusCodes
Inherited from Requests
Inherited from endpoints.SemigroupalSyntax
Inherited from Methods
Inherited from Urls
Inherited from endpoints.PartialInvariantFunctorSyntax
Inherited from endpoints.InvariantFunctorSyntax
Inherited from AnyRef
Inherited from Any
Inherited by implicit conversion StringFormat fromJsonEntitiesFromSchemas to StringFormat[JsonEntitiesFromSchemas]
Inherited by implicit conversion Ensuring fromJsonEntitiesFromSchemas to Ensuring[JsonEntitiesFromSchemas]
Inherited by implicit conversion ArrowAssoc fromJsonEntitiesFromSchemas to ArrowAssoc[JsonEntitiesFromSchemas]
Types
Types introduced by the algebra
Operations
Operations creating and transforming values