trait JsonEntitiesFromSchemas extends algebra.JsonEntitiesFromSchemas with EndpointsWithCustomErrors with JsonSchemas
Interpreter for algebra.JsonEntitiesFromSchemas that produces a documentation of the JSON schemas.
- Source
- JsonEntities.scala
- Grouped
- Alphabetic
- By Inheritance
- JsonEntitiesFromSchemas
- JsonSchemas
- TuplesSchemas
- EndpointsWithCustomErrors
- Responses
- StatusCodes
- Requests
- Headers
- Methods
- Urls
- 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
- 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
- case class DocumentedEndpoint(path: String, item: PathItem) extends Product with Serializable
- path
Path template (e.g. “/user/{id}”)
- item
Item documentation
- Definition Classes
- EndpointsWithCustomErrors
- case class DocumentedHeader(name: String, description: Option[String], required: Boolean, schema: Schema) extends Product with Serializable
- Definition Classes
- Headers
- case class DocumentedHeaders(value: List[DocumentedHeader]) extends Product with Serializable
- value
List of request header names (e.g. “Authorization”)
- Definition Classes
- Headers
- 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
- type Endpoint[A, B] = DocumentedEndpoint
Information carried by an HTTP endpoint
Information carried by an HTTP endpoint
- Definition Classes
- EndpointsWithCustomErrors → EndpointsWithCustomErrors
- 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
- type Path[A] = DocumentedUrl
An URL path carrying an
A
informationAn URL path carrying an
A
information- Definition Classes
- Urls → Urls
- Note
This type has implicit methods provided by the PathOps, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.
- type QueryString[A] = DocumentedQueryString
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 → Urls
- Note
This type has implicit methods provided by the QueryStringSyntax, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.
- type QueryStringParam[A] = DocumentedQueryStringParam
A query string parameter codec for type
A
.A query string parameter codec for type
A
.- Definition Classes
- Urls → Urls
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.
- type Request[A] = DocumentedRequest
Information carried by a whole request (headers and entity)
Information carried by a whole request (headers and entity)
- Definition Classes
- Requests → Requests
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax class.
- type RequestEntity[A] = Map[String, MediaType]
Information carried by request entity
Information carried by request entity
- Definition Classes
- Requests → Requests
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax class.
- type RequestHeaders[A] = DocumentedHeaders
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 → Requests
- Note
This type has implicit methods provided by the SemigroupalSyntax and PartialInvariantFunctorSyntax classes.
- type Response[A] = List[DocumentedResponse]
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 → Responses
- Note
This type has implicit methods provided by the InvariantFunctorSyntax and ResponseSyntax classes
- type ResponseEntity[A] = Map[String, MediaType]
An HTTP response entity carrying an information of type A
An HTTP response entity carrying an information of type A
- Definition Classes
- Responses → Responses
- Note
This type has implicit methods provided by the InvariantFunctorSyntax class
- type ResponseHeaders[A] = DocumentedHeaders
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 → Responses
- Note
This type has implicit methods provided by the SemigroupalSyntax and InvariantFunctorSyntax classes.
- type Segment[A] = Schema
An URL path segment codec for type
A
.An URL path segment codec for type
A
.- Definition Classes
- Urls → 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
- type StatusCode = Int
HTTP Status Code
HTTP Status Code
- Definition Classes
- StatusCodes → StatusCodes
- type Url[A] = DocumentedUrl
An URL carrying an
A
informationAn URL carrying an
A
information- Definition Classes
- Urls → Urls
- Note
This type has implicit methods provided by the PartialInvariantFunctorSyntax and InvariantFunctorSyntax classes.
- sealed trait CoproductEncoding extends AnyRef
- Definition Classes
- JsonSchemas
- sealed trait DocumentedJsonSchema extends AnyRef
- Definition Classes
- JsonSchemas
- class Enum[A] extends JsonSchema[A]
- Definition Classes
- JsonSchemas
- class JsonSchema[A] extends AnyRef
- Definition Classes
- JsonSchemas
- class Record[A] extends JsonSchema[A]
- Definition Classes
- JsonSchemas
- class Tagged[A] extends JsonSchema[A]
- Definition Classes
- JsonSchemas
- sealed trait Method extends AnyRef
- Definition Classes
- Methods
- case class DocumentedRequest(method: Requests.Method, url: Requests.DocumentedUrl, headers: Requests.DocumentedHeaders, documentation: Documentation, entity: Map[String, MediaType]) extends Product with Serializable
- Definition Classes
- Requests
- case class DocumentedResponse(status: (Responses.this)#StatusCode, documentation: String, headers: (Responses.this)#DocumentedHeaders, content: Map[String, MediaType]) extends Product with Serializable
- status
Response status code (e.g. OK or NotFound)
- documentation
Human readable documentation. Not optional because its required by openapi
- headers
Response headers documentation
- content
Map that associates each possible content-type (e.g. “text/html”) with a
MediaType
description
- Definition Classes
- Responses
- case class DocumentedParameter(name: String, required: Boolean, description: Option[String], schema: Schema) extends Product with Serializable
- name
Name of the parameter
- required
Whether this parameter is required or not (MUST be true for path parameters)
- Definition Classes
- Urls
- case class DocumentedQueryString(parameters: List[DocumentedParameter]) extends Product with Serializable
- parameters
List of query string parameters
- Definition Classes
- Urls
- case class DocumentedQueryStringParam(schema: Schema, isRequired: Boolean) extends Product with Serializable
- Definition Classes
- Urls
- case class DocumentedUrl(path: List[Either[String, DocumentedParameter]], queryParameters: List[DocumentedParameter]) extends Product with Serializable
- path
List of path segments. Left is a static segment, right is a path parameter
- queryParameters
Query string parameters
- Definition Classes
- Urls
Abstract Value Members
- 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 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 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 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
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
- def Accepted: Int
- Definition Classes
- StatusCodes → StatusCodes
- def BadRequest: Int
- Definition Classes
- StatusCodes → 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.
- def Created: Int
- Definition Classes
- StatusCodes → StatusCodes
- def Forbidden: Int
- Definition Classes
- StatusCodes → StatusCodes
- def InternalServerError: Int
- Definition Classes
- StatusCodes → 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.
- def NoContent: Int
- Definition Classes
- StatusCodes → StatusCodes
- def NotFound: Int
- Definition Classes
- StatusCodes → StatusCodes
- def NotImplemented: Int
- Definition Classes
- StatusCodes → StatusCodes
- def OK: Int
- Definition Classes
- StatusCodes → StatusCodes
- def Unauthorized: Int
- Definition Classes
- StatusCodes → StatusCodes
- 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 → JsonSchemas
- 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
- lazy val bigdecimalJsonSchema: JsonSchema[BigDecimal]
A JSON schema for type
BigDecimal
A JSON schema for type
BigDecimal
- Definition Classes
- JsonSchemas → JsonSchemas
- lazy val booleanJsonSchema: JsonSchema[Boolean]
A JSON schema for type
Boolean
A JSON schema for type
Boolean
- Definition Classes
- JsonSchemas → JsonSchemas
- def booleanQueryString: QueryStringParam[Boolean]
Query string parameter containing a
Boolean
value - lazy val byteJsonSchema: JsonSchema[Byte]
A JSON schema for type
Byte
A JSON schema for type
Byte
- Definition Classes
- JsonSchemas → JsonSchemas
- def chainPaths[A, B](first: Path[A], second: Path[B])(implicit tupler: Tupler[A, B]): Path[Out]
Chains the two paths
- def choiceResponse[A, B](responseA: Response[A], responseB: Response[B]): Response[Either[A, B]]
Alternative between two possible choices of responses.
- 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 → JsonSchemas
- 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 combineQueryStrings[A, B](first: QueryString[A], second: QueryString[B])(implicit tupler: Tupler[A, B]): QueryString[Out]
Concatenates two
QueryString
s - def coproductEncoding: CoproductEncoding
Override this method to customize the strategy used to encode the JSON schema of coproducts.
Override this method to customize the strategy used to encode the JSON schema of coproducts. By default, it uses CoproductEncoding.OneOf.
- Definition Classes
- JsonSchemas
- See also
- 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
- lazy val doubleJsonSchema: JsonSchema[Double]
A JSON schema for type
Double
A JSON schema for type
Double
- Definition Classes
- JsonSchemas → JsonSchemas
- def doubleQueryString: QueryStringParam[Double]
Codec for query string parameters of type
Double
- def doubleSegment: Segment[Double]
Segment codec for type
Double
- 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 emptyRecord: Record[Unit]
The JSON schema of a record with no fields
The JSON schema of a record with no fields
- Definition Classes
- JsonSchemas → JsonSchemas
- lazy val emptyRequest: Map[String, MediaType]
Empty request -- request without a body.
Empty request -- request without a body. Use
description
of endpoints.algebra.Endpoints#endpoint to document an empty body. - def emptyRequestHeaders: DocumentedHeaders
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. - def emptyResponse: ResponseEntity[Unit]
Empty response entity
- def emptyResponseHeaders: ResponseHeaders[Unit]
No particular response header.
- 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 → EndpointsWithCustomErrors
- 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
- 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 → JsonSchemas
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def field[A](name: String, docs: Documentation)(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 → JsonSchemas
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- lazy val floatJsonSchema: JsonSchema[Float]
A JSON schema for type
Float
A JSON schema for type
Float
- Definition Classes
- JsonSchemas → JsonSchemas
- 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()
- lazy val intJsonSchema: JsonSchema[Int]
A JSON schema for type
Int
A JSON schema for type
Int
- Definition Classes
- JsonSchemas → JsonSchemas
- def intQueryString: QueryStringParam[Int]
Ability to define
Int
query string parameters - def intSegment: Segment[Int]
Ability to define
Int
path segments - 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
- def jsonRequest[A](implicit codec: JsonSchema[A]): Map[String, MediaType]
Defines a
RequestEntity[A]
given an implicitJsonRequest[A]
Defines a
RequestEntity[A]
given an implicitJsonRequest[A]
- Definition Classes
- JsonEntitiesFromSchemas → JsonEntities
- def jsonResponse[A](implicit codec: JsonSchema[A]): Map[String, MediaType]
Defines a
Response[A]
given an implicitJsonResponse[A]
Defines a
Response[A]
given an implicitJsonResponse[A]
- Definition Classes
- JsonEntitiesFromSchemas → JsonEntities
- implicit def jsonSchemaPartialInvFunctor: PartialInvariantFunctor[JsonSchema]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- JsonSchemas → JsonSchemas
- See also
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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
- lazy val longJsonSchema: JsonSchema[Long]
A JSON schema for type
Long
A JSON schema for type
Long
- Definition Classes
- JsonSchemas → JsonSchemas
- def longQueryString: QueryStringParam[Long]
Query string parameter containing a
Long
value - def longSegment: Segment[Long]
Segment containing a
Long
value - 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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
- def openApi(info: Info)(endpoints: DocumentedEndpoint*): OpenApi
- info
General information about the documentation to generate
- endpoints
The endpoints to generate the documentation for
- returns
An
OpenApi
instance for the given endpoint descriptions
- Definition Classes
- EndpointsWithCustomErrors
- def optField[A](name: String, docs: Documentation)(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 → JsonSchemas
- def optRequestHeader(name: String, docs: Documentation): RequestHeaders[Option[String]]
An optional request header
- 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. - implicit def optionalQueryStringParam[A](implicit param: 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.
- 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 → 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.
- 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
- implicit lazy val pathPartialInvariantFunctor: PartialInvariantFunctor[Path]
Provides
xmap
andxmapPartial
operations. - 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
- def qs[A](name: String, docs: Documentation)(implicit value: QueryStringParam[A]): QueryString[A]
Builds a
QueryString
with one parameter. - implicit lazy val queryStringParamPartialInvariantFunctor: PartialInvariantFunctor[QueryStringParam]
Provides
xmap
andxmapPartial
operations. - implicit lazy val queryStringPartialInvariantFunctor: PartialInvariantFunctor[QueryString]
Provides
xmap
andxmapPartial
operations. - implicit def recordPartialInvFunctor: PartialInvariantFunctor[Record]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- JsonSchemas → JsonSchemas
- See also
- def remainingSegments(name: String, docs: Documentation): Path[String]
The remaining segments of the path.
- implicit def repeatedQueryStringParam[A, CC[X] <: Iterable[X]](implicit param: 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.
- def request[A, B, C, AB, Out](method: Method, url: Url[A], entity: RequestEntity[B] = emptyRequest, docs: Documentation = None, headers: RequestHeaders[C] = emptyRequestHeaders)(implicit tuplerAB: Tupler.Aux[A, B, AB], tuplerABC: Tupler.Aux[AB, C, Out]): Request[Out]
Request for given parameters
- implicit lazy val requestEntityPartialInvariantFunctor: PartialInvariantFunctor[RequestEntity]
Provides the operations
xmap
andxmapPartial
. - def requestHeader(name: String, docs: Documentation): RequestHeaders[String]
A required request header
- implicit lazy val requestHeadersPartialInvariantFunctor: PartialInvariantFunctor[RequestHeaders]
Provides the operations
xmap
andxmapPartial
. - implicit lazy val requestHeadersSemigroupal: Semigroupal[RequestHeaders]
Provides
++
operation. - implicit def requestPartialInvariantFunctor: PartialInvariantFunctor[Request]
Provides the operations
xmap
andxmapPartial
. - def response[A, B, R](statusCode: StatusCode, entity: ResponseEntity[A], docs: Documentation = None, headers: ResponseHeaders[B])(implicit tupler: Tupler.Aux[A, B, R]): Response[R]
Server interpreters construct a response with the given status and entity.
- implicit lazy val responseEntityInvariantFunctor: InvariantFunctor[ResponseEntity]
- 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") ) )
- implicit def responseHeadersInvariantFunctor: InvariantFunctor[ResponseHeaders]
Provides
xmap
operation. - implicit def responseHeadersSemigroupal: Semigroupal[ResponseHeaders]
Provides
++
operation. - implicit lazy val responseInvariantFunctor: InvariantFunctor[Response]
Provides the operation
xmap
to the typeResponse
- def segment[A](name: String, docs: Documentation)(implicit A: Segment[A]): Path[A]
A path segment carrying an
A
information - implicit lazy val segmentPartialInvariantFunctor: PartialInvariantFunctor[Segment]
Provides
xmap
andxmapPartial
operations. - 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
- def staticPathSegment(segment: String): Path[Unit]
A path segment whose value is the given
segment
- 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
- 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 → JsonSchemas
- See also
https://json-schema.org/understanding-json-schema/reference/string.html#format
- def stringQueryString: QueryStringParam[String]
Ability to define
String
query string parameters - 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. - final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- implicit def taggedPartialInvFunctor: PartialInvariantFunctor[Tagged]
Provides
xmap
andxmapPartial
operations.Provides
xmap
andxmapPartial
operations.- Definition Classes
- JsonSchemas → JsonSchemas
- See also
- 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 → JsonSchemas
- lazy val textRequest: Map[String, MediaType]
Request with a
String
body. - def textResponse: ResponseEntity[String]
Text response entity
- def toSchema(jsonSchema: DocumentedJsonSchema): Schema
Convert the internal representation of a JSON schema into the public OpenAPI AST
Convert the internal representation of a JSON schema into the public OpenAPI AST
- Definition Classes
- JsonSchemas
- def toString(): String
- Definition Classes
- AnyRef → Any
- def tryParseString[A](type: String)(parse: (String) => A): (String) => Validated[A]
- Definition Classes
- Urls
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- implicit 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 → TuplesSchemas
- lazy val ujsonSchemas: ujson.JsonSchemas
The JSON codecs used to produce some parts of the documentation.
The JSON codecs used to produce some parts of the documentation.
- Definition Classes
- JsonSchemas
- implicit lazy val urlPartialInvariantFunctor: PartialInvariantFunctor[Url]
Provides
xmap
andxmapPartial
operations - 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
- implicit final lazy val uuidJsonSchema: JsonSchema[UUID]
A JSON schema for type
UUID
A JSON schema for type
UUID
- Definition Classes
- JsonSchemas
- def uuidQueryString: QueryStringParam[UUID]
Ability to define
UUID
query string parameters - def uuidSegment: Segment[UUID]
Ability to define
UUID
path segments - 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
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- 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 → JsonSchemas
- object CoproductEncoding
This object contains the options for how to encode coproduct JSON schemas.
This object contains the options for how to encode coproduct JSON schemas.
The following Scala coproduct is the candidate example. Each encoding option includes the schema that it would generate for that example.
sealed trait Pet case class Cat(name: String) extends Pet case class Lizard(lovesRocks: Boolean) extends Pet
- Definition Classes
- JsonSchemas
- object DocumentedJsonSchema
- Definition Classes
- JsonSchemas
- object Delete extends Method with Product with Serializable
- object Get extends Method with Product with Serializable
- object Options extends Method with Product with Serializable
- object Patch extends Method with Product with Serializable
- object Post extends Method with Product with Serializable
- object Put extends Method with Product with Serializable
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 EndpointsWithCustomErrors
Inherited from Responses
Inherited from StatusCodes
Inherited from Requests
Inherited from Headers
Inherited from Methods
Inherited from Urls
Inherited from algebra.JsonEntitiesFromSchemas
Inherited from algebra.JsonSchemas
Inherited from algebra.TuplesSchemas
Inherited from JsonCodecs
Inherited from algebra.JsonEntities
Inherited from algebra.EndpointsWithCustomErrors
Inherited from Errors
Inherited from algebra.Responses
Inherited from algebra.StatusCodes
Inherited from algebra.Requests
Inherited from endpoints.SemigroupalSyntax
Inherited from algebra.Methods
Inherited from algebra.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