ResponseAs

sttp.client3.ResponseAs
See theResponseAs companion object
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.

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object IgnoreResponse.type
class MappedResponseAs[T, T2, R]
class ResponseAsBoth[A, B, R]
object ResponseAsByteArray.type
class ResponseAsStream[F, T, Stream, S]
class ResponseAsStreamUnsafe[BinaryStream, S]
trait WebSocketResponseAs[T, R]
class ResponseAsWebSocket[F, T]
class ResponseAsWebSocketStream[S, Pipe]
Show all

Members list

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.

Attributes

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

Attributes

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]