JsonEntitiesFromSchemas
Attributes
- Graph
-
- Supertypes
-
trait JsonSchemastrait TuplesSchemastrait NoDocsJsonSchemastrait JsonEntitiesFromCodecstrait JsonEntitiesFromCodecstrait Methodstrait Urlstrait StatusCodestrait JsonEntitiesFromSchemastrait JsonSchemastrait TuplesSchemastrait JsonCodecstrait JsonEntitiestrait Errorstrait Responsestrait StatusCodestrait Requeststrait SemigroupalSyntaxtrait Methodstrait Urlstrait InvariantFunctorSyntaxclass Objecttrait Matchableclass AnyShow all
Members list
Type members
Inherited classlikes
Value parameters
- entity
-
Contents of the callback message
- method
-
HTTP method used for the callback
- response
-
Expected response
Attributes
- Inherited from:
- EndpointsWithCustomErrors
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
Attributes
- Inherited from:
- EndpointsWithCustomErrors
- Supertypes
-
class Objecttrait Matchableclass Any
Information carried by an HTTP endpoint
Information carried by an HTTP endpoint
Values of type Endpoint can be constructed by using the operation endpoint.
Type parameters
- A
-
Information carried by the request
- B
-
Information carried by the response
Attributes
- Note
-
This type has implicit methods provided by the EndpointSyntax class
- Inherited from:
- EndpointsWithCustomErrors
- Supertypes
-
class Objecttrait Matchableclass Any
Value parameters
- callbacks
-
Callbacks indexed by event name
- deprecated
-
Indicates whether this endpoint is deprecated or not
- description
-
Detailed description
- operationId
-
A unique identifier which identifies this operation
- summary
-
Short description
- tags
-
OpenAPI tags
Attributes
- Inherited from:
- EndpointsWithCustomErrors
- Supertypes
-
trait Serializableclass Objecttrait Matchableclass Any
Attributes
- Inherited from:
- EndpointsWithCustomErrors
- Supertypes
-
class Objecttrait Matchableclass Any
Extension methods for Endpoint.
Extension methods for Endpoint.
Attributes
- Inherited from:
- EndpointsWithCustomErrors
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Inherited from:
- JsonSchemas
- Supertypes
Extension methods for values of type F[A]
for which there is an implicit InvariantFunctor[F]
instance.
Extension methods for values of type F[A]
for which there is an implicit InvariantFunctor[F]
instance.
Attributes
- Inherited from:
- InvariantFunctorSyntax
- Supertypes
-
class Objecttrait Matchableclass Any
The JSON schema of a type A
The JSON schema of a type A
JSON schemas can be interpreted as encoders serializing values of type A
into JSON, decoders de-serializing JSON documents into values of type A
, or documentation rendering the underlying JSON schema.
The JsonSchemas
trait provides implicit definitions of JsonSchema[A]
for basic types (Int
, Double
, String
, etc.), and operations such as field, optField, or enumeration, which construct more complex JSON schemas.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and JsonSchemaOps classes.
- Inherited from:
- JsonSchemas
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Documentation related methods for annotating schemas. Encoder and decoder interpreters ignore this information.
Documentation related methods for annotating schemas. Encoder and decoder interpreters ignore this information.
Attributes
- Inherited from:
- JsonSchemas
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
Implicit methods for values of type JsonSchema
Attributes
- Inherited from:
- PartialInvariantFunctorSyntax
- Supertypes
-
class Objecttrait Matchableclass Any
An URL path carrying an A
information
An URL path carrying an A
information
Values of type Path[A]
can be constructed by the operations path, segment, and remainingSegments.
path / "user" / segment[UUID]("id")
- Server interpreters raise an error if they can’t parse the incoming request path as a value of type
A
. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
Attributes
- Note
-
This type has implicit methods provided by the PathOps, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.
- Inherited from:
- Urls
- Supertypes
A query string parameter codec for type A
.
A query string parameter codec for type A
.
The trait Urls
provides implicit instances of type QueryStringParam[A]
for basic types (e.g., Int
, String
, etc.). You can create additional instances by transforming or refining the existing instances with xmap
and xmapPartial
.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.
- Inherited from:
- Urls
- Supertypes
-
class Objecttrait Matchableclass Any
Extension methods on QueryString.
Extension methods on QueryString.
Attributes
- Inherited from:
- Urls
- Supertypes
-
class Objecttrait Matchableclass Any
A more specific type of JSON schema for record types (case classes)
A more specific type of JSON schema for record types (case classes)
Values of type Record[A]
can be constructed with the operations field and optField.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and RecordOps classes.
- Inherited from:
- JsonSchemas
- Supertypes
- Known subtypes
-
trait Tagged[A]
Implicit methods for values of type Record
Attributes
- Inherited from:
- Requests
- Supertypes
-
class Objecttrait Matchableclass Any
An URL path segment codec for type A
.
An URL path segment codec for type A
.
The trait Urls
provides implicit instances of Segment[A]
for basic types (e.g., Int
, String
, etc.). You can create additional instances by transforming or refining the existing instances with xmap
and xmapPartial
.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.
- Inherited from:
- Urls
- Supertypes
-
class Objecttrait Matchableclass Any
Attributes
- Inherited from:
- SemigroupalSyntax
- Supertypes
-
class Objecttrait Matchableclass Any
A more specific type of JSON schema for sum types (sealed traits)
A more specific type of JSON schema for sum types (sealed traits)
“Tagged” schemas include the name of the type A
as an additional discriminator field. By default, the name of the discriminator field is defined by the operation defaultDiscriminatorName but it can be customized by calling the operation withDiscriminator
.
Values of type Tagged[A]
can be constructed by calling the operation tagged
on a Record[A]
.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and TaggedOps classes.
- Inherited from:
- JsonSchemas
- Supertypes
Attributes
- Inherited from:
- JsonSchemas
- Supertypes
An URL carrying an A
information
An URL carrying an A
information
Values of type URL[A]
are typically constructed by first using the path constructor and then chaining it with segments and query parameters.
path / "users" / segment[UUID]("id") /? qs[String]("apiKey")
- Server interpreters raise an error if they can’t parse the incoming request URL as a value of type
A
. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
Attributes
Inherited types
Callbacks indexed by URL pattern
Callbacks indexed by URL pattern
Attributes
- See also
-
Swagger Documentation at https://swagger.io/docs/specification/callbacks/
- Inherited from:
- EndpointsWithCustomErrors
Errors in a request built by a client
Attributes
- Inherited from:
- EndpointsWithCustomErrors
A more specific type of JSON schema for enumerations, i.e. types that have a specific set of valid values
A more specific type of JSON schema for enumerations, i.e. types that have a specific set of valid values
Values of type Enum[A]
can be constructed by the operations:
- enumeration
- stringEnumeration
- intEnumeration
Attributes
- Note
-
This type has implicit methods provided by the EnumOps class.
- Inherited from:
- JsonSchemas
A JSON codec type class
Type class defining how to represent the A
information as a JSON request entity
Type class defining how to represent the A
information as a JSON request entity
Attributes
- Inherited from:
- JsonCodecs
Type class defining how to represent the A
information as a JSON response entity
Type class defining how to represent the A
information as a JSON response entity
Attributes
- Inherited from:
- JsonCodecs
A query string carrying an A
information
A query string carrying an A
information
QueryString values can be created with the qs operation, and can be combined with the &
operation:
val queryPageAndLang: QueryString[(Int, Option[String])] =
qs[Int]("page") & qs[Option[String]]("lang")
- Server interpreters raise an error if they can’t parse the incoming request query string parameters as a value of type
A
. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
Attributes
- Note
-
This type has implicit methods provided by the QueryStringSyntax, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.
- Inherited from:
- Urls
Information carried by a whole request (headers and entity)
Information carried by a whole request (headers and entity)
Values of type Request[A]
can be constructed by using the operations request, get, post, put, or delete.
- Server interpreters raise an error if they can’t parse the incoming request as a value of type
A
. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax and RequestSyntax classes.
- Inherited from:
- EndpointsWithCustomErrors
Information carried by request entity
Information carried by request entity
Values of type RequestEntity[A]
can be constructed by using the operations emptyRequest or textRequest. Additional types of request entities are provided by other algebra modules, such as JsonEntities or ChunkedEntities.
- Server interpreters raise an error if they can’t parse the incoming request entity as a value of type
A
. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
Attributes
- Note
-
This type has implicit methods provided by the PartialInvariantFunctorSyntax and RequestEntitySyntax classes.
- Inherited from:
- EndpointsWithCustomErrors
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.
- Server interpreters raise an error if they can’t parse the incoming request headers as a value of type
A
. By default, they produce a Bad Request (400) response with a list of error messages in a JSON array. Refer to the documentation of your server interpreter to customize this behavior.
Attributes
- Note
-
This type has implicit methods provided by the SemigroupalSyntax and PartialInvariantFunctorSyntax classes.
- Inherited from:
- EndpointsWithCustomErrors
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
Values of type Response[A]
can be constructed by using the operations ok, badRequest, internalServerError, or the more general operation response.
Attributes
- Note
-
This type has implicit methods provided by the InvariantFunctorSyntax and ResponseSyntax classes
- Inherited from:
- EndpointsWithCustomErrors
An HTTP response entity carrying an information of type A
An HTTP response entity carrying an information of type A
Values of type ResponseEntity can be constructed by using the operations emptyResponse or textResponse. Additional types of response entities are provided by other algebra modules, such as JsonEntities or ChunkedEntities.
Attributes
- Note
-
This type has implicit methods provided by the InvariantFunctorSyntax class
- Inherited from:
- EndpointsWithCustomErrors
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.
Attributes
- Note
-
This type has implicit methods provided by the SemigroupalSyntax and InvariantFunctorSyntax classes.
- Inherited from:
- EndpointsWithCustomErrors
Error raised by the business logic of a server
HTTP Status Code
This type is necessary to express different perspectives of servers and clients on optional query string parameters with default value:
This type is necessary to express different perspectives of servers and clients on optional query string parameters with default value:
- Client interpreters should define it as
Option[A]
and omit query string parameters with default value that are empty - Server interpreters should define it as
A
and accept incoming requests whose query string parameters with default value are missing, while providing the defined default value - Documentation interpreters should mark the parameter as optional and document the provided default value
Attributes
- Inherited from:
- Urls
Value members
Concrete methods
Turns a JsonCodec[A] into a Codec[String, A]
Turns a JsonCodec[A] into a Codec[String, A]
Attributes
Inherited methods
Attributes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Note
-
You should use the
badRequest
constructor provided by the endpoints4s.algebra.Responses trait to ensure that errors produced by endpoints4s are consistently handled by interpreters. - Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Note
-
You should use the
internalServerError
constructor provided by the endpoints4s.algebra.Responses trait to ensure that errors produced by endpoints4s are consistently handled by interpreters. - Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Attributes
- Definition Classes
- Inherited from:
- StatusCodes
Add the provided headers
to the request
.
Add the provided headers
to the request
.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Add the provided queryString
to the request
.
Add the provided queryString
to the request
.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Add the provided headers
to the response
.
Add the provided headers
to the response
.
Note that if the response
describes a choice of several possible responses (resulting from the orElse
operation), the headers
will be added to all the possible responses.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
The authority to use to access the endpoints
Bad Request (400) response, with an entity of type ClientErrors
.
Bad Request (400) response, with an entity of type ClientErrors
.
Attributes
- See also
- Inherited from:
- Responses
A JSON schema for type BigDecimal
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type BigDecimal
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
Chains the two paths
Alternative between two possible request entities, differentiated by the Content-Type
header
Alternative between two possible request entities, differentiated by the Content-Type
header
Attributes
- Note
-
If
A
andB
are both JSON-encoded and use disjoint schemas, use endpoints4s.algebra.JsonSchemas.TaggedOps#orElse at the schema level instead- Server interpreters accept either of the request entities
- Client interpreters provide one of the two request entities
- Documentation interpreters list all possible content types and their entities
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
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.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
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
Attributes
- Inherited from:
- JsonSchemas
Attributes
- Inherited from:
- EndpointsWithCustomErrors
Format of the response entity carrying the client errors.
Convert the ClientErrors type into the endpoints4s internal client error type
Convert the ClientErrors type into the endpoints4s internal client error type
Attributes
- Inherited from:
- Errors
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
Attributes
- Inherited from:
- JsonSchemas
Helper method to perform DELETE request
Helper method to perform DELETE request
Type parameters
- HeadersP
-
Payload carried by headers
- UrlP
-
Payload carried by url
Attributes
- Inherited from:
- Requests
A JSON schema for type Double
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type Double
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
Empty request -- request without a body. Use description
of endpoints4s.algebra.Endpoints#endpoint to document an empty body.
Empty request -- request without a body. Use description
of endpoints4s.algebra.Endpoints#endpoint to document an empty body.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Ignore headers
Ignore headers
- Server interpreters don’t try to parse any information from the request headers,
- Client interpreters supply no specific headers
Use description
of endpoints4s.algebra.Endpoints#endpoint to document empty headers.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Empty response entity
Empty response entity
- Server interpreters produce no response entity,
- Client interpreters ignore the response entity.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
No particular response header.
No particular response header.
- Client interpreters should ignore information carried by response headers.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Override this method to customize the behaviour of encoders produced by optFieldWithDefault when encoding a field value that corresponds to the specified default value. By default, the default values are included.
Override this method to customize the behaviour of encoders produced by optFieldWithDefault when encoding a field value that corresponds to the specified default value. By default, the default values are included.
As an example, consider the following Scala class and instances of it.
case class Book(
name: String,
availableAsEBook: Boolean = false
)
val book1 = Book("Complete Imaginary Works", false)
val book2 = Book("History of Writing", true)
With encodersSkipDefaultValues = false
(which is the default), the field is always encoded, regardless of whether it is also the default value. This makes encoding performance predictable, but results in larger and more complicated encoded payloads:
{ "name": "Complete Imaginary Works", "availableAsEBook": false }
{ "name": "History of Writing", "availableAsEBook": true }
With encodersSkipDefaultValues = true
, the field is skipped if its value if also the field's default value. This means encoding can be slower (since potentially expensive equality check needs to be performed), but the encoded payloads are smaller and simpler:
{ "name": "Complete Imaginary Works" }
{ "name": "History of Writing", "availableAsEBook": true }
Attributes
- Inherited from:
- JsonSchemas
Define an HTTP endpoint
Define an HTTP endpoint
Value parameters
- docs
-
Documentation (used by documentation interpreters)
- request
-
Request
- response
-
Response
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Promotes a schema to an enumeration.
Promotes a schema to an enumeration.
- Decoder interpreters fail if the input value does not match the encoded values of any of the possible values,
- Encoder interpreters never fail, even if the value is not contained in the set of possible values,
- Documentation interpreters enrich the JSON schema with an
enum
property listing the possible values.
Attributes
- Inherited from:
- JsonSchemas
The JSON schema of a record with a single field name
of type A
The JSON schema of a record with a single field name
of type A
- Encoder interpreters produce a JSON object with one property of the given
name
, - Decoder interpreters fail if the JSON value is not a JSON object, or if it doesn’t contain the
name
property, or if the property has an invalid value (according to itstpe
), - Documentation interpreters produce the JSON schema of a JSON object schema with one required property of the given
name
.
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type BigDecimal
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type BigDecimal
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
Helper method to perform GET request
Helper method to perform GET request
Type parameters
- HeadersP
-
Payload carried by headers
- UrlP
-
Payload carried by url
Attributes
- Inherited from:
- Requests
Convenient constructor for enumerations represented by int values.
Convenient constructor for enumerations represented by int values.
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type Int
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type Int
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
Internal Server Error (500) response, with an entity of type ServerError
.
Internal Server Error (500) response, with an entity of type ServerError
.
Attributes
- See also
- Inherited from:
- Responses
Convert the endpoints4s internal client error type into the ClientErrors type
Convert the endpoints4s internal client error type into the ClientErrors type
Attributes
- Inherited from:
- Errors
Request with a JSON body, given an implicit JsonRequest[A]
Request with a JSON body, given an implicit JsonRequest[A]
- Server interpreters accept requests with content-type
application/json
and reject requests with an incorrect content-type. - Client interpreters supply content-type
application/json
Attributes
- Inherited from:
- JsonEntitiesFromCodecs
Defines a Response[A]
given an implicit JsonResponse[A]
Defines a Response[A]
given an implicit JsonResponse[A]
Attributes
- Inherited from:
- JsonEntitiesFromCodecs
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] =
lazyRecord("Rec") {
optField("next")(recursiveSchema)
}.xmap(Recursive(_))(_.next)
Interpreters should return a JsonSchema value that does not evaluate the given schema
unless it is effectively used.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The record JSON schema whose evaluation should be delayed
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
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.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The record JSON schema whose evaluation should be delayed
Attributes
- Inherited from:
- JsonSchemas
A lazy JSON schema that can references schemas currently being defined:
A lazy JSON schema that can references schemas currently being defined:
case class Recursive(next: Option[Recursive])
val recursiveSchema: JsonSchema[Recursive] = lazySchema("Rec")(
optField("next")(recursiveSchema)
).xmap(Recursive)(_.next)
Interpreters should return a JsonSchema value that does not evaluate the given schema
unless it is effectively used.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The record JSON schema whose evaluation should be delayed
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
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.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The tagged JSON schema whose evaluation should be delayed
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
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.
Value parameters
- name
-
A unique name identifying the schema
- schema
-
The tagged JSON schema whose evaluation should be delayed
Attributes
- Inherited from:
- JsonSchemas
A schema for a statically known value.
A schema for a statically known value.
- Decoder interpreters first try to decode incoming values with the given
tpe
schema, and then check that it is equal to the givenvalue
, - Encoder interpreters always produce the given
value
, encoded according totpe
, - Documentation interpreters enrich the JSON schema with a
const
property documenting its only possible value (or anenum
property with a single item).
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))
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type Long
where certain properties, such as minimum, maximum, etc. are set.
A JSON schema for type Long
where certain properties, such as minimum, maximum, etc. are set.
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
Map the inner documentation of the endpoint to new documentation.
Map the inner documentation of the endpoint to new documentation.
Value parameters
- endpoint
-
The current endpoint that is being mapped.
- func
-
The function that maps the documentation to some new documentation.
Attributes
- Returns
-
The endpoint with the mapped documentation.
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Map the inner request of the endpoint to a new request. This is for example useful to add Auth headers to an existing endpoint.
Map the inner request of the endpoint to a new request. This is for example useful to add Auth headers to an existing endpoint.
Value parameters
- endpoint
-
The current endpoint that is being mapped.
- func
-
The function that maps the request to some new request.
Attributes
- Returns
-
The endpoint with the mapped request.
- Example
-
val myEndpoint: Endpoint[Input, Output] = ??? val basicAuthHeaders: RequestHeaders[Credentials] = ??? val endpointWithAuth: Endpoint[(Input, Credentials), Output] = myEndpoint.mapRequest(_.addHeaders(basicAuthHeader))
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Map the inner response of the endpoint to a new response. This is for example useful so you can add error handling to an existing endpoint.
Map the inner response of the endpoint to a new response. This is for example useful so you can add error handling to an existing endpoint.
Value parameters
- endpoint
-
The current endpoint that is being mapped.
- func
-
The function that maps the response to some new response.
Attributes
- Returns
-
The endpoint with the mapped response.
- Example
-
val myEndpoint: Endpoint[Input, Output] = ??? val errorResponse: Response[Error] = ??? val endpointWithErrorHandling: Endpoint[Input, Either[Error, Output]] = myEndpoint.mapResponse(resp => resp orElse errorResponse)
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Annotates the enumeration JSON schema with a name
Annotates the record JSON schema with a name
Annotates the tagged JSON schema with a name
OK (200) Response with the given entity
The JSON schema of a record with a single optional field name
of type A
The JSON schema of a record with a single optional field name
of type A
- Encoder interpreters can omit the field or emit a field with a
null
value, - Decoder interpreters successfully decode
None
if the field is absent or if it is present but has the valuenull
. They fail if the field is present but contains an invalid value, - Documentation interpreters produce the JSON schema of a JSON object with an optional property of the given
name
.
Attributes
- Inherited from:
- JsonSchemas
The JSON schema of a record with a single optional field with the given name
The JSON schema of a record with a single optional field with the given name
- Decoders fallback to the
defaultValue
if the field is absent from the decoded JSON object. They fail if the field is present but has an invalid value, - Encoders must emit the field if it is not
defaultValue
, but can choose to omit it when it has thedefaultValue
- Documentation interpreters produce the JSON schema of a JSON object with an optional property of the given
name
.
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
Builds a QueryString
with one optional parameter, which has a default value.
Builds a QueryString
with one optional parameter, which has a default value.
Examples:
optQsWithDefault[Int]("page", 1) // optional `page` parameter, with default value 1
Type parameters
- A
-
Type of the value carried by the parameter
Value parameters
- name
-
Parameter’s name
Attributes
- Definition Classes
- Inherited from:
- Urls
An optional request header
An optional request header
Value parameters
- name
-
Header name (e.g., “Authorization”)
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
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 as
Some[String]
, orNone
if the response header is missing. - Server interpreters should produce such a response header.
- Documentation interpreters should document this header.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
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, and they must report a failure for incoming requests whose optional query string parameters are present, but malformed,
- Documentation interpreters should mark the parameter as optional.
Attributes
- Definition Classes
- Inherited from:
- Urls
The JSON schema of a coproduct that share the same parent type and thus can be widened to that parent type
The JSON schema of a coproduct that share the same parent type and thus can be widened to that parent type
Attributes
- Inherited from:
- JsonSchemas
A schema that can be either schemaA
or schemaB
.
A schema that can be either schemaA
or schemaB
.
Documentation interpreter produce a oneOf
JSON schema. Encoder interpreters forward to either schemaA
or schemaB
. Decoder interpreters first try to decode with schemaA
, and fallback to schemaB
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.
Attributes
- 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. - Inherited from:
- JsonSchemas
Helper method to perform PATCH request
Helper method to perform POST request
The JSON schema of a record with a single field name
of type A
with fine control over presence and null
The JSON schema of a record with a single field name
of type A
with fine control over presence and null
- Encoder interpreters may produce a JSON object with one property of the given
name
, which can be set to thenull
value, - Decoder interpreters successfully decode
Absent
if the field is absent,Null
if it is present but has the valuenull
. They fail if the field is present but contains an invalid value, - Documentation interpreters produce the JSON schema of a JSON object with an optional property of the given
name
.
Attributes
- Definition Classes
- Inherited from:
- JsonSchemas
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
Type parameters
- A
-
Type of the value carried by the parameter
Value parameters
- name
-
Parameter’s name
Attributes
- Definition Classes
- Inherited from:
- Urls
The remaining segments of the path. The String
value carried by this Path
is still URL-encoded.
The remaining segments of the path. The String
value carried by this Path
is still URL-encoded.
Attributes
- Inherited from:
- Urls
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.
Attributes
- Definition Classes
- Inherited from:
- Urls
Request for given parameters
Request for given parameters
Type parameters
- BodyP
-
Payload carried by body
- HeadersP
-
Payload carried by headers
- UrlAndBodyPTupled
-
Payloads of Url and Body tupled together by Tupler
- UrlP
-
Payload carried by url
Value parameters
- docs
-
Request documentation
- entity
-
Request entity
- headers
-
Request headers
- method
-
Request method
- url
-
Request URL
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
A required request header
A required request header
Value parameters
- name
-
Header name (e.g., “Authorization”)
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Define an HTTP response
Define an HTTP response
- Server interpreters construct a response with the given status and entity.
- Client interpreters accept a response only if it has a corresponding status code.
Value parameters
- docs
-
Response documentation
- entity
-
Response entity
- headers
-
Response headers
- statusCode
-
Response status code
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
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 as
String
, 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")
)
)
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
The scheme to use to access the endpoints
A path segment carrying an A
information
Format of the response entity carrying the server error.
Convert the ServerError type into the endpoints4s internal server error type
Convert the ServerError type into the endpoints4s internal server error type
Attributes
- Inherited from:
- Errors
A path segment whose value is the given segment
Convenient constructor for enumerations represented by string values.
Convenient constructor for enumerations represented by string values.
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for type String
.
A JSON schema for type String
.
Value parameters
- format
-
An additional semantic information about the underlying format of the string
Attributes
- See also
- Inherited from:
- JsonSchemas
Tags a schema for type A
with the given tag name
Request with a String
body.
Request with a String
body.
- Server interpreters accept requests with content-type
text/plain
and reject requests with an incorrect content-type. - Server interpreters will use the character encoding set in the content-type header to determine how the text is decoded.
- Client interpreters supply content-type
text/plain
with an explicit character encoding
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Text response entity
Text response entity
- Server interpreters produce an HTTP response with a
text/plain
content type.
Attributes
- Definition Classes
- Inherited from:
- EndpointsWithCustomErrors
Convert the endpoints4s internal server error type into the ServerError type
Convert the endpoints4s internal server error type into the ServerError type
Attributes
- Inherited from:
- Errors
Turns a Response[A]
into a Response[Option[A]]
.
Turns a Response[A]
into a Response[Option[A]]
.
Interpreters represent None
with an empty HTTP response whose status code is 404 (Not Found).
Attributes
- Inherited from:
- Responses
Add a description to the given enumeration JSON schema
Add a description to the given JSON schema
Add a description to the given record JSON schema
Add a description to the given tagged JSON schema
Allows to specify name of discriminator field for sum type
Include an example value within the given enumeration JSON schema
Include an example value within the given enumeration JSON schema
Attributes
- Inherited from:
- NoDocsJsonSchemas
Include an example value within the given JSON schema
Include an example value within the given record JSON schema
Include an example value within the given record JSON schema
Attributes
- Inherited from:
- NoDocsJsonSchemas
Include an example value within the given tagged JSON schema
Include an example value within the given tagged JSON schema
Attributes
- Inherited from:
- NoDocsJsonSchemas
Add a title to the given enumeration JSON schema
Add a title to the given schema
Add a title to the given record JSON schema
Add a title to the given tagged JSON schema
Inherited fields
Response used by endpoints4s when decoding a request fails.
Response used by endpoints4s when decoding a request fails.
The provided implementation forwards to badRequest
.
Attributes
- Inherited from:
- Errors
The JSON schema of a record with no fields
The JSON schema of a record with no fields
- Encoder interpreters produce an empty JSON object,
- Decoder interpreters fail if the JSON value is not a JSON object,
- Documentation interpreters produce the JSON schema of a JSON object schema with no properties.
Attributes
- Inherited from:
- JsonSchemas
An empty path.
An empty path.
Useful to begin a path definition:
path / "foo" / segment[Int] /? qs[String]("bar")
Attributes
- Inherited from:
- Urls
Response used by endpoints4s when the business logic of an endpoint fails.
Response used by endpoints4s when the business logic of an endpoint fails.
The provided implementation forwards to internalServerError
Attributes
- Inherited from:
- Errors
Implicits
Inherited implicits
Extension methods for Endpoint.
Attributes
- Inherited from:
- JsonSchemas
Extension methods for values of type F[A]
for which there is an implicit InvariantFunctor[F]
instance.
Extension methods for values of type F[A]
for which there is an implicit InvariantFunctor[F]
instance.
Attributes
- Inherited from:
- InvariantFunctorSyntax
Implicit methods for values of type JsonSchema
Attributes
- Inherited from:
- PartialInvariantFunctorSyntax
Extension methods on QueryString.
Implicit methods for values of type Record
Attributes
- Inherited from:
- Requests
Attributes
- Inherited from:
- SemigroupalSyntax
Attributes
- Inherited from:
- JsonSchemas
A JSON schema for sequences
A JSON schema for type BigDecimal
A JSON schema for type Boolean
Query string parameter containing a Boolean
value
A JSON schema for type Byte
A JSON schema for type String
A JSON schema for type Double
Codec for query string parameters of type Double
Path segment codec for type Double
An ISO 8601 duration
Attributes
- Inherited from:
- EndpointsWithCustomErrors
A JSON schema for type Float
An ISO 8601 date-time in UTC
A JSON schema for type Int
Ability to define Int
query string parameters
Path segment codec for type Int
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
Attributes
- See also
-
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- JsonSchemas
A JSON schema for type Long
Query string parameter containing a Long
value
Path segment codec for type Long
A JSON schema for maps with string keys
An ISO8601 date-time
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
Attributes
- See also
-
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- Urls
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
Attributes
- See also
-
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- JsonSchemas
Provides the operations xmap
and xmapPartial
.
Provides the operations xmap
and xmapPartial
.
Attributes
- See also
-
PartialInvariantFunctorSyntax
- Inherited from:
- EndpointsWithCustomErrors
Provides the operations xmap
and xmapPartial
.
Provides the operations xmap
and xmapPartial
.
Attributes
- See also
-
PartialInvariantFunctorSyntax
- Inherited from:
- EndpointsWithCustomErrors
Provides ++
operation.
Provides ++
operation.
Attributes
- See also
-
SemigroupalSyntax
- Inherited from:
- EndpointsWithCustomErrors
Provides the operations xmap
and xmapPartial
.
Provides the operations xmap
and xmapPartial
.
Attributes
- See also
-
PartialInvariantFunctorSyntax
- Inherited from:
- EndpointsWithCustomErrors
Attributes
- Inherited from:
- EndpointsWithCustomErrors
Provides xmap
operation.
Provides xmap
operation.
Attributes
- See also
-
InvariantFunctorSyntax
- Inherited from:
- EndpointsWithCustomErrors
Provides ++
operation.
Provides ++
operation.
Attributes
- See also
-
SemigroupalSyntax
- Inherited from:
- EndpointsWithCustomErrors
Provides the operation xmap
to the type Response
Provides the operation xmap
to the type Response
Attributes
- See also
-
InvariantFunctorSyntax
- Inherited from:
- EndpointsWithCustomErrors
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
Attributes
- See also
-
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- JsonSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
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.
Attributes
- Inherited from:
- TuplesSchemas
A JSON schema for type UUID
Ability to define UUID
query string parameters
Path segment codec for type UUID