JsonEntitiesFromSchemas
Partially applies the JsonEntities algebra interface to fix the
JsonRequest and JsonResponse types to be JsonSchema.
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
Types
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
Errors in a request built by a client
Errors in a request built by a client
- Inherited from:
- Errors
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
Error raised by the business logic of a server
Error raised by the business logic of a server
- Inherited from:
- Errors
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
Aand 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
badRequestconstructor 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
internalServerErrorconstructor 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
AandBare 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
Format of the response entity carrying the client errors.
Format of the response entity carrying the client errors.
- Inherited from:
- Errors
Convert the ClientErrors type into the endpoints4s internal client error type
Convert the ClientErrors type into the endpoints4s internal client error type
- Inherited from:
- Errors
Concatenates two QueryStrings
Concatenates two QueryStrings
- 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
withDiscriminatoryou 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
enumproperty 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
nameproperty, 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
Convert the endpoints4s internal client error type into the ClientErrors type
Convert the endpoints4s internal client error type into the ClientErrors type
- 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/jsonand 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
tpeschema, 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
constproperty documenting its only possible value (or anenumproperty 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
nullvalue, - Decoder interpreters successfully decode
Noneif 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
defaultValueif 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], orNoneif 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
AandB(none must be a subtype of the other), otherwise, a value of typeBmight 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
Format of the response entity carrying the server error.
Format of the response entity carrying the server error.
- Inherited from:
- Errors
Convert the ServerError type into the endpoints4s internal server error type
Convert the ServerError type into the endpoints4s internal server error type
- Inherited from:
- Errors
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/plainand 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/plainwith an explicit character encoding
- Inherited from:
- Requests
Text response entity
Text response entity
- Server interpreters produce an HTTP response with a
text/plaincontent type.
- Inherited from:
- Responses
Convert the endpoints4s internal server error type into the ServerError type
Convert the endpoints4s internal server error type into the ServerError type
- Inherited from:
- Errors
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
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
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