SttpUpickleApiExtension

sttp.openai.json.SttpUpickleApiExtension
object SttpUpickleApiExtension extends SttpUpickleApi

An sttp upickle api extension that deserializes JSON with snake_case keys into case classes with fields corresponding to keys in camelCase and maps errors to OpenAIException subclasses.

Attributes

Graph
Supertypes
trait SttpUpickleApi
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def asInputStreamUnsafe_parseErrors: ResponseAs[Either[OpenAIException, InputStream]]
def asJson_parseErrors[B : IsOption]: ResponseAs[Either[OpenAIException, B]]
def asStreamUnsafe_parseErrors[S](s: Streams[S]): StreamResponseAs[Either[OpenAIException, s.BinaryStream], S]
def asStringEither: ResponseAs[Either[OpenAIException, String]]
def deserializeJsonSnake[B : IsOption]: (String, ResponseMetadata) => Either[DeserializationOpenAIException, B]

Inherited methods

def asJson[B : IsOption]: ResponseAs[Either[ResponseException[String], B]]

If the response is successful (2xx), tries to deserialize the body from a string into JSON. Returns:

If the response is successful (2xx), tries to deserialize the body from a string into JSON. Returns:

  • Right(b) if the parsing was successful
  • Left(UnexpectedStatusCode(String)) if the response code was other than 2xx (deserialization is not attempted)
  • Left(DeserializationException) if there's an error during deserialization

Attributes

Inherited from:
SttpUpickleApi
def asJson[B](b: B)(implicit encoder: Writer[B]): StringBody

Serialize the given value as JSON, to be used as a request's body using sttp.client4.Request.body.

Serialize the given value as JSON, to be used as a request's body using sttp.client4.Request.body.

Attributes

Inherited from:
SttpUpickleApi
def asJsonAlways[B : IsOption]: ResponseAs[Either[DeserializationException, B]]

Tries to deserialize the body from a string into JSON, regardless of the response code. Returns:

Tries to deserialize the body from a string into JSON, regardless of the response code. Returns:

  • Right(b) if the parsing was successful
  • Left(DeserializationException) if there's an error during deserialization

Attributes

Inherited from:
SttpUpickleApi
def asJsonEither[E : IsOption, B : IsOption]: ResponseAs[Either[ResponseException[E], B]]

Tries to deserialize the body from a string into JSON, using different deserializers depending on the status code. Returns:

Tries to deserialize the body from a string into JSON, using different deserializers depending on the status code. Returns:

  • Right(B) if the response was 2xx and parsing was successful
  • Left(UnexpectedStatusCode(E)) if the response was other than 2xx and parsing was successful
  • Left(DeserializationException) if there's an error during deserialization

Attributes

Inherited from:
SttpUpickleApi
def asJsonEitherOrFail[E : IsOption, B : IsOption]: ResponseAs[Either[E, B]]

Deserializes the body from a string into JSON, using different deserializers depending on the status code. If a deserialization error occurs, throws a DeserializationException / returns a failed effect.

Deserializes the body from a string into JSON, using different deserializers depending on the status code. If a deserialization error occurs, throws a DeserializationException / returns a failed effect.

Attributes

Inherited from:
SttpUpickleApi
def asJsonOrFail[B : IsOption]: ResponseAs[B]

If the response is successful (2xx), tries to deserialize the body from a string into JSON. Otherwise, if the response code is other than 2xx, or a deserialization error occurs, throws an ResponseException / returns a failed effect.

If the response is successful (2xx), tries to deserialize the body from a string into JSON. Otherwise, if the response code is other than 2xx, or a deserialization error occurs, throws an ResponseException / returns a failed effect.

Attributes

Inherited from:
SttpUpickleApi
def deserializeJson[B : IsOption]: String => Either[Exception, B]

Attributes

Inherited from:
SttpUpickleApi

Concrete fields

override val upickleApi: SnakePickle.type