Usage examples

All of the examples are available in the sources in runnable form.

POST a form using the synchronous backend

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "core" % "@VERSION@")

Example code:

GET and parse JSON using the akka-http backend and json4s

Required dependencies:

libraryDependencies ++= List(
  "com.softwaremill.sttp.client3" %% "akka-http-backend" % "@VERSION@",
  "com.softwaremill.sttp.client3" %% "json4s" % "@VERSION@",
  "org.json4s" %% "json4s-native" % "3.6.0"
)

Example code:

GET and parse JSON using the ZIO async-http-client backend and circe

Required dependencies:

libraryDependencies ++= List(
  "com.softwaremill.sttp.client3" %% "async-http-client-backend-zio" % "@VERSION@",
  "com.softwaremill.sttp.client3" %% "circe" % "@VERSION@",
  "io.circe" %% "circe-generic" % "@CIRCE_VERSION@"
)

Example code:

GET and parse JSON using the async-http-client Monix backend and circe, treating deserialization errors as failed effects

Required dependencies:

libraryDependencies ++= List(
  "com.softwaremill.sttp.client3" %% "async-http-client-backend-monix" % "@VERSION@",
  "com.softwaremill.sttp.client3" %% "circe" % "@VERSION@",
  "io.circe" %% "circe-generic" % "@CIRCE_VERSION@"
)

Example code:

Log requests & responses using slf4j

Required dependencies:

libraryDependencies ++= List(
  "com.softwaremill.sttp.client3" %% "slf4j-backend" % "@VERSION@",
  "com.softwaremill.sttp.client3" %% "circe" % "@VERSION@",
  "io.circe" %% "circe-generic" % "@CIRCE_VERSION@"
)

Example code:

POST and serialize JSON using the Monix async-http-client backend and circe

Required dependencies:

libraryDependencies ++= List(
  "com.softwaremill.sttp.client3" %% "async-http-client-backend-monix" % "@VERSION@",
  "com.softwaremill.sttp.client3" %% "circe" % "@VERSION@",
  "io.circe" %% "circe-generic" % "@CIRCE_VERSION@"
)

Example code:

Test an endpoint which requires multiple query parameters

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "core" % "@VERSION@")

Example code:

Open a websocket using ZIO

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "async-http-client-backend-zio" % "@VERSION@")

Example code:

Open a websocket using FS2 streams

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "async-http-client-backend-fs2" % "@VERSION@")

Example code:

Test Monix websockets

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "async-http-client-backend-monix" % "@VERSION@")

Example code:

Open a websocket using Akka

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "akka-http-backend" % "@VERSION@")

Example code:

Open a websocket using Monix

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "async-http-client-backend-monix" % "@VERSION@")

Example code:

Stream request and response bodies using fs2

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "async-http-client-backend-fs2" % "@VERSION@")

Example code:

Stream request and response bodies using zio-stream

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "async-http-client-backend-zio" % "@VERSION@")

Example code:

Retry a request using ZIO

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "async-http-client-backend-zio" % "@VERSION@")

Example code:

GET parsed and raw response bodies

Required dependencies:

libraryDependencies ++= List("com.softwaremill.sttp.client3" %% "core" % "@VERSION@")

Example code: