Requests
Type members
Classlikes
Inherited classlikes
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
- Inherited from:
- PartialInvariantFunctorSyntax
Types
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.
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.
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 types
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
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
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
Abstract methods
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
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.
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.
An optional request header
An optional request header
- Value parameters:
- name
Header name (e.g., “Authorization”)
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
A required request header
A required request header
- Value parameters:
- name
Header name (e.g., “Authorization”)
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
Concrete methods
Add the provided headers to the request.
Add the provided headers to the request.
Add the provided queryString to the request.
Add the provided queryString to the request.
Helper method to perform DELETE request
Helper method to perform DELETE request
- Type parameters:
- HeadersP
Payload carried by headers
- UrlP
Payload carried by url
Helper method to perform GET request
Helper method to perform GET request
- Type parameters:
- HeadersP
Payload carried by headers
- UrlP
Payload carried by url
Helper method to perform PATCH request
Helper method to perform PATCH request
- 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
Helper method to perform POST request
Helper method to perform POST request
- 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
Helper method to perform PUT request
Helper method to perform PUT request
- 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
Inherited methods
Concatenates two QueryStrings
Concatenates two QueryStrings
- Inherited from:
- Urls
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
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
A path segment carrying an A information
A path segment carrying an A information
- Inherited from:
- Urls
A path segment whose value is the given segment
A path segment whose value is the given segment
- Inherited from:
- Urls
Builds an URL from the given path and query string
Builds an URL from the given path and query string
- Inherited from:
- Urls
Implicits
Implicits
Provides the operations xmap and xmapPartial.
Provides the operations xmap and xmapPartial.
- See also:
PartialInvariantFunctorSyntax
Provides the operations xmap and xmapPartial.
Provides the operations xmap and xmapPartial.
- See also:
PartialInvariantFunctorSyntax
Inherited implicits
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
- Inherited from:
- PartialInvariantFunctorSyntax
- Inherited from:
- SemigroupalSyntax
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
Ability to define Int query string parameters
Ability to define Int query string parameters
- Inherited from:
- Urls
Query string parameter containing a Long value
Query string parameter containing a Long value
- Inherited from:
- Urls
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
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 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:
- Urls
Ability to define UUID query string parameters
Ability to define UUID query string parameters
- Inherited from:
- Urls