JsonEntitiesFromSchemasTestApi
Type members
Inherited classlikes
- Value parameters:
- entity
Contents of the callback message
- method
HTTP method used for the callback
- response
Expected response
- Inherited from:
- EndpointsWithCustomErrors
- 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
- Inherited from:
- EndpointsWithCustomErrors
Extension methods for Endpoint.
Extension methods for Endpoint.
- Inherited from:
- EndpointsWithCustomErrors
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.
- Inherited from:
- InvariantFunctorSyntax
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.
- Inherited from:
- JsonSchemas
Implicit methods for values of type JsonSchema
Implicit methods for values of type JsonSchema
- Inherited from:
- JsonSchemas
- Inherited from:
- PartialInvariantFunctorSyntax
Implicit methods for values of type Record
Implicit methods for values of type Record
- Inherited from:
- JsonSchemas
Inherited types
Callbacks indexed by URL pattern
Callbacks indexed by URL pattern
- See also:
Swagger Documentation at https://swagger.io/docs/specification/callbacks/
- Inherited from:
- EndpointsWithCustomErrors
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
- Note:
This type has implicit methods provided by the EndpointSyntax class
- 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:
- Note:
This type has implicit methods provided by the EnumOps class.
- Inherited from:
- JsonSchemas
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.
- Note:
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and JsonSchemaOps classes.
- Inherited from:
- JsonSchemas
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.
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.
- Note:
This type has implicit methods provided by the QueryStringSyntax, InvariantFunctorSyntax, and the PartialInvariantFunctorSyntax classes.
- Inherited from:
- Urls
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
.
- Note:
This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.
- Inherited from:
- Urls
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.
- Note:
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and RecordOps classes.
- Inherited from:
- JsonSchemas
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.
- Note:
This type has implicit methods provided by the PartialInvariantFunctorSyntax and RequestSyntax classes.
- Inherited from:
- Requests
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.
- Note:
This type has implicit methods provided by the PartialInvariantFunctorSyntax and RequestEntitySyntax classes.
- Inherited from:
- Requests
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.
- Note:
This type has implicit methods provided by the SemigroupalSyntax and PartialInvariantFunctorSyntax classes.
- Inherited from:
- Requests
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.
- Note:
This type has implicit methods provided by the InvariantFunctorSyntax and ResponseSyntax classes
- Inherited from:
- Responses
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.
- Note:
This type has implicit methods provided by the InvariantFunctorSyntax class
- Inherited from:
- Responses
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.
- Note:
This type has implicit methods provided by the SemigroupalSyntax and InvariantFunctorSyntax classes.
- Inherited from:
- Responses
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
.
- Note:
This type has implicit methods provided by the PartialInvariantFunctorSyntax and the InvariantFunctorSyntax classes.
- Inherited from:
- Urls
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]
.
- Note:
This type has implicit methods provided by the PartialInvariantFunctorSyntax, InvariantFunctorSyntax, and TaggedOps classes.
- Inherited from:
- JsonSchemas
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.
- Note:
This type has implicit methods provided by the PartialInvariantFunctorSyntax and InvariantFunctorSyntax classes.
- Inherited from:
- Urls
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
- Inherited from:
- Urls
Value members
Inherited methods
- 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
- 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
Add the provided headers
to the request
.
Add the provided headers
to the request
.
- Inherited from:
- Requests
Add the provided queryString
to the request
.
Add the provided queryString
to the request
.
- Inherited from:
- Requests
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.
- Inherited from:
- Responses
Bad Request (400) response, with an entity of type ClientErrors
.
Bad Request (400) response, with an entity of type ClientErrors
.
- 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.
- Inherited from:
- JsonSchemas
Alternative between two possible request entities, differentiated by the
Content-Type
header
Alternative between two possible request entities, differentiated by the
Content-Type
header
- 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
- Inherited from:
- Requests
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.
- Inherited from:
- Responses
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
- Inherited from:
- JsonSchemas
Response entity format for Invalid values
Response entity format for Invalid values
- Inherited from:
- BuiltInErrors
Concatenates two QueryString
s
Concatenates two QueryString
s
- Inherited from:
- Urls
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
- 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
- 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.
- 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.
- Inherited from:
- Requests
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.
- Inherited from:
- Requests
Empty response entity
Empty response entity
- Server interpreters produce no response entity,
- Client interpreters ignore the response entity.
- Inherited from:
- Responses
No particular response header.
No particular response header.
- Client interpreters should ignore information carried by response headers.
- Inherited from:
- Responses
Define an HTTP endpoint
Define an HTTP endpoint
- Value parameters:
- docs
Documentation (used by documentation interpreters)
- request
Request
- response
Response
- 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.
- 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
.
- 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.
- 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
- Inherited from:
- Requests
Convenient constructor for enumerations represented by int values.
Convenient constructor for enumerations represented by int values.
- 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.
- 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
.
- See also:
- Inherited from:
- Responses
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
- Inherited from:
- JsonEntities
Defines a Response[A]
given an implicit JsonResponse[A]
Defines a Response[A]
given an implicit JsonResponse[A]
- Inherited from:
- JsonEntities
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
- 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
- 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
- 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))
- 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.
- 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.
- Returns:
The endpoint with the mapped documentation.
- 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.
- 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))
- 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.
- 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)
- Inherited from:
- EndpointsWithCustomErrors
Annotates the enumeration JSON schema with a name
Annotates the enumeration JSON schema with a name
- Inherited from:
- JsonSchemas
Annotates the record JSON schema with a name
Annotates the record JSON schema with a name
- Inherited from:
- JsonSchemas
Annotates the tagged JSON schema with a name
Annotates the tagged JSON schema with a name
- Inherited from:
- JsonSchemas
OK (200) Response with the given entity
OK (200) Response with the given entity
- Inherited from:
- Responses
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
.
- 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
.
- 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
- Inherited from:
- Urls
An optional request header
An optional request header
- Value parameters:
- name
Header name (e.g., “Authorization”)
- Inherited from:
- Requests
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.
- Inherited from:
- Responses
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
- 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.
- 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
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
- 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.
- 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
- Inherited from:
- Requests
A required request header
A required request header
- Value parameters:
- name
Header name (e.g., “Authorization”)
- Inherited from:
- Requests
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
- Inherited from:
- Responses
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")
)
)
- Inherited from:
- Responses
A path segment carrying an A
information
A path segment carrying an A
information
- Inherited from:
- Urls
Response entity format for Throwable
values
Response entity format for Throwable
values
- Inherited from:
- BuiltInErrors
A path segment whose value is the given segment
A path segment whose value is the given segment
- Inherited from:
- Urls
Convenient constructor for enumerations represented by string values.
Convenient constructor for enumerations represented by string values.
- 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
- See also:
- Inherited from:
- JsonSchemas
Tags a schema for type A
with the given tag name
Tags a schema for type A
with the given tag name
- Inherited from:
- JsonSchemas
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
- Inherited from:
- Requests
Text response entity
Text response entity
- Server interpreters produce an HTTP response with a
text/plain
content type.
- Inherited from:
- Responses
Builds an URL from the given path and query string
Builds an URL from the given path and query string
- Inherited from:
- Urls
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).
- Inherited from:
- Responses
Add a description to the given enumeration JSON schema
Add a description to the given enumeration JSON schema
- Inherited from:
- JsonSchemas
Add a description to the given JSON schema
Add a description to the given JSON schema
- Inherited from:
- JsonSchemas
Add a description to the given record JSON schema
Add a description to the given record JSON schema
- Inherited from:
- JsonSchemas
Add a description to the given tagged JSON schema
Add a description to the given tagged JSON schema
- Inherited from:
- JsonSchemas
Allows to specify name of discriminator field for sum type
Allows to specify name of discriminator field for sum type
- Inherited from:
- JsonSchemas
Include an example value within the given enumeration JSON schema
Include an example value within the given enumeration JSON schema
- Inherited from:
- JsonSchemas
Include an example value within the given JSON schema
Include an example value within the given JSON schema
- Inherited from:
- JsonSchemas
Include an example value within the given record JSON schema
Include an example value within the given record JSON schema
- Inherited from:
- JsonSchemas
Include an example value within the given tagged JSON schema
Include an example value within the given tagged JSON schema
- Inherited from:
- JsonSchemas
Add a title to the given enumeration JSON schema
Add a title to the given enumeration JSON schema
- Inherited from:
- JsonSchemas
Add a title to the given record JSON schema
Add a title to the given record JSON schema
- Inherited from:
- JsonSchemas
Add a title to the given tagged JSON schema
Add a title to the given tagged JSON schema
- Inherited from:
- JsonSchemas
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
- Inherited from:
- JsonSchemas
Deprecated and Inherited methods
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
- Deprecated
- 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
- Deprecated
- Inherited from:
- JsonSchemas
Concrete fields
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
.
- Inherited from:
- Errors
An empty path.
An empty path.
Useful to begin a path definition:
path / "foo" / segment[Int] /? qs[String]("bar")
- 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
- Inherited from:
- Errors
Implicits
Implicits
Inherited implicits
Extension methods for Endpoint.
Extension methods for Endpoint.
- Inherited from:
- EndpointsWithCustomErrors
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.
- Inherited from:
- InvariantFunctorSyntax
Implicit methods for values of type JsonSchema
Implicit methods for values of type JsonSchema
- Inherited from:
- JsonSchemas
- Inherited from:
- PartialInvariantFunctorSyntax
Implicit methods for values of type Record
Implicit methods for values of type Record
- Inherited from:
- JsonSchemas
- Inherited from:
- SemigroupalSyntax
A JSON schema for sequences
A JSON schema for sequences
- Inherited from:
- JsonSchemas
Query string parameter containing a Boolean
value
Query string parameter containing a Boolean
value
- Inherited from:
- Urls
Codec for query string parameters of type Double
Codec for query string parameters of type Double
- Inherited from:
- Urls
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.
- Inherited from:
- JsonSchemas
Ability to define Int
query string parameters
Ability to define Int
query string parameters
- Inherited from:
- Urls
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
- See also:
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- JsonSchemas
Query string parameter containing a Long
value
Query string parameter containing a Long
value
- Inherited from:
- Urls
A JSON schema for maps with string keys
A JSON schema for maps with string keys
- Inherited from:
- JsonSchemas
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.
- Inherited from:
- Urls
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
- See also:
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- Urls
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
- See also:
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- Urls
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
- See also:
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- Urls
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
- See also:
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- JsonSchemas
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.
- Inherited from:
- Urls
Provides the operations xmap
and xmapPartial
.
Provides the operations xmap
and xmapPartial
.
- See also:
PartialInvariantFunctorSyntax
- Inherited from:
- Requests
Provides the operations xmap
and xmapPartial
.
Provides the operations xmap
and xmapPartial
.
- See also:
PartialInvariantFunctorSyntax
- Inherited from:
- Requests
Provides the operations xmap
and xmapPartial
.
Provides the operations xmap
and xmapPartial
.
- See also:
PartialInvariantFunctorSyntax
- Inherited from:
- Requests
Provides xmap
operation.
Provides xmap
operation.
- See also:
InvariantFunctorSyntax
- Inherited from:
- Responses
Provides the operation xmap
to the type Response
Provides the operation xmap
to the type Response
- See also:
InvariantFunctorSyntax
- Inherited from:
- Responses
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
- See also:
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- Urls
Ability to define String
query string parameters
Ability to define String
query string parameters
- Inherited from:
- Urls
Path segment codec for type String
Path segment codec for type String
- Server interpreters should return an URL-decoded string value,
- Client interpreters should take an URL-decoded string value.
- Inherited from:
- Urls
Provides xmap
and xmapPartial
operations.
Provides xmap
and xmapPartial
operations.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Inherited from:
- TuplesSchemas
Provides xmap
and xmapPartial
operations
Provides xmap
and xmapPartial
operations
- See also:
PartialInvariantFunctorSyntax and InvariantFunctorSyntax
- Inherited from:
- Urls
Ability to define UUID
query string parameters
Ability to define UUID
query string parameters
- Inherited from:
- Urls