ResponseAs

sealed trait ResponseAs[+T, -R]

Describes how response body should be handled.

Apart from the basic cases (ignoring, reading as a byte array or file), response body descriptions can be mapped over, to support custom types. The mapping can take into account the ResponseMetadata, that is the headers and status code. Responses can also be handled depending on the response metadata. Finally, two response body descriptions can be combined (with some restrictions).

A number of as[Type] helper methods are available as part of SttpApi and when importing sttp.client3._.

Type parameters:
R

The backend capabilities required by the response description. This might be Any (no requirements), Effect (the backend must support the given effect type), Streams (the ability to send and receive streaming bodies) or WebSockets (the ability to handle websocket requests).

T

Target type as which the response will be read.

Companion:
object
class Object
trait Matchable
class Any
object IgnoreResponse.type
class MappedResponseAs[T, T2, R]
class ResponseAsBoth[A, B, R]
class ResponseAsStream[F, T, Stream, S]
class ResponseAsStreamUnsafe[BinaryStream, S]

Value members

Abstract methods

def show: String

Concrete methods

def getEither: ResponseAs[Either[HE, B], R]

If the type to which the response body should be deserialized is an Either[ResponseException[HE, DE], B], either throws the DeserializationException, returns the deserialized body from the HttpError, or the deserialized successful body B.

If the type to which the response body should be deserialized is an Either[ResponseException[HE, DE], B], either throws the DeserializationException, returns the deserialized body from the HttpError, or the deserialized successful body B.

def getRight: ResponseAs[B, R]
Implicitly added by RichResponseAsEither

If the type to which the response body should be deserialized is an Either[A, B]:

If the type to which the response body should be deserialized is an Either[A, B]:

  • in case of A, throws as an exception / returns a failed effect (wrapped with an HttpError if A is not yet an exception)
  • in case of B, returns the value directly
def map[T2](f: T => T2): ResponseAs[T2, R]
def mapLeft[L2](f: A => L2): ResponseAs[Either[L2, B], R]
Implicitly added by RichResponseAsEither
def mapRight[R2](f: B => R2): ResponseAs[Either[A, R2], R]
Implicitly added by RichResponseAsEither
def mapWithMetadata[T2](f: (T, ResponseMetadata) => T2): ResponseAs[T2, R]
def showAs(s: String): ResponseAs[T, R]