package model
Most model classes contain both serialisation & parsing functionality, following these conventions:
.toString
returns a representation of the model class in a format as in an HTTP request/response. For example, for an uri this will behttp://...
, for a header[name]: [value]
, etc.[SthCompanionObject].parse(serialized: String): Either[String, Sth]
: returns an error message or an instance of the model class[SthCompanionObject].unsafeParse(serialized: String): Sth
: returns an instance of the model class or in case of an error, *throws an exception*.[SthCompanionObject].unsafeApply(values)
: creates an instance of the model class; validates the input values and in case of an error, *throws an exception*. An error could be e.g. that the input values contain characters outside of the allowed range[SthCompanionObject].safeApply(...): Either[String, Sth]
: same as above, but doesn't throw exceptions. Instead, returns an error message or the model class instance[SthCompanionObject].apply(...): Sth
: creates the model type, without validation, and without throwing exceptions
- Alphabetic
- By Inheritance
- model
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- trait ContentRangeUnits extends AnyRef
- case class ContentTypeRange(mainType: String, subType: String, charset: String) extends Product with Serializable
- trait Encodings extends AnyRef
- trait HasHeaders extends AnyRef
-
class
Header extends AnyRef
An HTTP header.
An HTTP header. The name property is case-insensitive during equality checks.
To compare if two headers have the same name, use the is method, which does a case-insensitive check, instead of comparing the name property.
The name and value should be already encoded (if necessary), as when serialised, they end up unmodified in the header.
- trait HeaderNames extends AnyRef
- case class Headers(headers: Seq[Header]) extends HasHeaders with Product with Serializable
- case class MediaType(mainType: String, subType: String, charset: Option[String] = None, otherParameters: Map[String, String] = Map.empty) extends Product with Serializable
- trait MediaTypes extends AnyRef
- final case class Method(method: String) extends AnyVal with Product with Serializable
- trait Methods extends AnyRef
-
case class
Part[+T](name: String, body: T, otherDispositionParams: Map[String, String], headers: Seq[Header]) extends HasHeaders with Product with Serializable
A decoded representation of a multipart part.
-
case class
QueryParams(ps: Seq[(String, Seq[String])]) extends Product with Serializable
Represents query parameters, where each parameter can have 0, 1, or more values.
Represents query parameters, where each parameter can have 0, 1, or more values. All query parameters are assumed to be decoded.
- trait RequestMetadata extends HasHeaders
- trait ResponseMetadata extends HasHeaders
- final class StatusCode extends AnyVal
- trait StatusCodes extends AnyRef
-
case class
Uri(scheme: Option[String], authority: Option[Authority], pathSegments: PathSegments, querySegments: Seq[QuerySegment], fragmentSegment: Option[Segment]) extends Product with Serializable
A URI.
A URI. Can represent both relative and absolute URIs, hence in terms of https://tools.ietf.org/html/rfc3986, this is a URI reference.
All components (scheme, host, query, ...) are stored decoded, and become encoded upon serialization (using toString).
Instances can be created using the uri interpolator:
uri"..."
(see UriInterpolator), or the factory methods on the Uri companion object.The
apply
/safeApply
/unsafeApply
methods create absolute URIs and require a host. Therelative
methods creates a relative URI, given path/query/fragment components.- querySegments
Either key-value pairs, single values, or plain query segments. Key value pairs will be serialized as
k=v
, and blocks of key-value pairs/single values will be combined using&
. Note that no&
or other separators are added around plain query segments - if required, they need to be added manually as part of the plain query segment. Custom encoding logic can be provided when creating a segment.
- trait UriInterpolator extends AnyRef
Value Members
- object ContentRangeUnits extends ContentRangeUnits
- object ContentTypeRange extends Serializable
- object Encodings extends Encodings
-
object
Header
For a description of the behavior of
apply
,safeApply
andunsafeApply
methods, see sttp.model. - object HeaderNames extends HeaderNames
- object Headers extends Serializable
-
object
MediaType extends MediaTypes with Serializable
For a description of the behavior of
apply
,parse
,safeApply
andunsafeApply
methods, see sttp.model. -
object
Method extends Methods with Serializable
For a description of the behavior of
apply
,safeApply
andunsafeApply
methods, see sttp.model. - object Part extends Serializable
- object QueryParams extends Serializable
- object RequestMetadata
- object ResponseMetadata
-
object
StatusCode extends StatusCodes
For a description of the behavior of
apply
,safeApply
andunsafeApply
methods, see sttp.model. -
object
Uri extends UriInterpolator with Serializable
For a general description of the behavior of
apply
,parse
,safeApply
andunsafeApply
methods, see sttp.model.For a general description of the behavior of
apply
,parse
,safeApply
andunsafeApply
methods, see sttp.model.The
safeApply
methods return a validation error if the scheme contains illegal characters or if the host is empty. - object UriInterpolator