We'll be adding a feature to Bootzooka, a skeleton Scala microservice/web application project.
This will involve using doobie, monix, tapir, http4s, circe and compile-time dependency injection.
If you'd like to follow along:
import monix.reactive.Observable | |
import sttp.capabilities.monix.MonixStreams | |
object Test extends App { | |
import sttp.client3._ | |
import monix.execution.Scheduler.Implicits.global | |
val b = AsyncHttpClientMonixBackend().runSyncUnsafe() | |
basicRequest.post(uri"http://198.51.100.0").streamBody(MonixStreams)(Observable.empty).send(b).runSyncUnsafe() |
package sttp.tapir.server.http4s.ztapir | |
import org.scalatest.flatspec.AnyFlatSpec | |
import org.scalatest.matchers.should.Matchers | |
import sttp.monad.MonadError | |
import zio.{Has, RIO, Runtime, ZIO} | |
import zio.interop.catz._ | |
import zio.interop.catz.implicits._ | |
import sttp.tapir._ | |
import sttp.tapir.server.ServerEndpoint |
We'll be adding a feature to Bootzooka, a skeleton Scala microservice/web application project.
This will involve using doobie, monix, tapir, http4s, circe and compile-time dependency injection.
If you'd like to follow along:
package sttp.client3.examples | |
import monix.eval.Task | |
import sttp.capabilities.WebSockets | |
import sttp.capabilities.monix.MonixStreams | |
import sttp.client3._ | |
import sttp.client3.asynchttpclient.monix.AsyncHttpClientMonixBackend | |
import sttp.client3.testing.SttpBackendStub | |
import sttp.model.StatusCode | |
import sttp.ws.{WebSocket, WebSocketFrame} |
package sttp.client3.examples | |
import io.circe.generic.auto._ | |
import sttp.client3._ | |
import sttp.client3.asynchttpclient.monix.AsyncHttpClientMonixBackend | |
import sttp.client3.circe._ | |
object GetAndParseJsonGetRightMonixCirce extends App { | |
import monix.execution.Scheduler.Implicits.global |
package sttp.client3.examples | |
import io.circe | |
import io.circe.generic.auto._ | |
import sttp.client3._ | |
import sttp.client3.circe._ | |
object GetRawRequestBodySynchronous extends App { | |
case class HttpBinResponse(origin: String, headers: Map[String, String]) |
package sttp.client3.examples | |
import sttp.capabilities.zio.ZioStreams | |
import sttp.client3._ | |
import sttp.client3.asynchttpclient.zio.{AsyncHttpClientZioBackend, SttpClient} | |
import zio._ | |
import zio.console._ | |
import zio.stream._ | |
object StreamZio extends App { |
package sttp.client3.examples | |
import cats.effect.{ContextShift, IO} | |
import fs2._ | |
import sttp.capabilities.fs2.Fs2Streams | |
import sttp.client3._ | |
import sttp.client3.asynchttpclient.fs2.AsyncHttpClientFs2Backend | |
import sttp.ws.WebSocketFrame | |
object WebSocketStreamFs2 extends App { |
package sttp.client3.examples | |
import sttp.client3._ | |
import sttp.client3.akkahttp.AkkaHttpBackend | |
import sttp.ws.WebSocket | |
import scala.concurrent.ExecutionContext.Implicits.global | |
import scala.concurrent.Future | |
object WebSocketAkka extends App { |
package sttp.client.examples | |
import sttp.client._ | |
import sttp.client.asynchttpclient.fs2.AsyncHttpClientFs2Backend | |
import cats.effect.{ContextShift, IO} | |
import cats.instances.string._ | |
import fs2.{Stream, text} | |
import sttp.capabilities.fs2.Fs2Streams | |
object StreamFs2 extends App { |