Skip to content
PiotrFerenc edited this page May 14, 2024 · 1 revision
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import sttp.client3._
import sttp.client3.circe._
import io.circe.generic.auto._
import io.circe.syntax._

object Example {

  case class Parameters(ConsoleText: String)

  case class TaskItem(Sequence: Int, Name: String, Action: String)

  case class RequestPayload(Parameters: Parameters, Tasks: Seq[TaskItem])

  def main(args: Array[String]): Unit = {
    val backend = HttpURLConnectionBackend()
    val url = "http://localhost:5000/execute"
    
    val payload = RequestPayload(
      Parameters = Parameters(ConsoleText = "hallo word"),
      Tasks = Seq(TaskItem(Sequence = 1, Name = "log", Action = "console"))
    )
    
    val request = basicRequest
      .post(uri"$url")
      .body(payload.asJson)
      .contentType("application/json")
    
    val response = request.send(backend)
    
    response.map { resp =>
      if (resp.code.isSuccess) {
        println(s"Response: ${resp.body.getOrElse("No content")}")
      } else {
        println(s"Error: ${resp.code}")
      }
    }
  }
}
Clone this wiki locally