sbt new scala/scala-seed.g8 cd <your-project-name> scala libraryDependencies += "com.softwaremill.sttp.client3" %% "core" % "3.3.13" scala import sttp.client3._ import sttp.client3.asynchttpclient.WebSocketHandler import sttp.client3.circe._ import io.circe._ scala class ApiService { val backend = AsyncHttpClientCatsBackend() def getUser(userId: String): Either[Throwable, Response[Json]] = { basicRequest .get(uri"https://api.example.com/users/$userId") .response(asJson[Json]) .send(backend) .body .left.map(throwable => new Exception(throwable.getMessage)) } def createUser(userData: Json): Either[Throwable, Response[Json]] = { basicRequest .post(uri"https://api.example.com/users") .body(userData) .response(asJson[Json]) .send(backend) .body .left.map(throwable => new Exception(throwable.getMessage)) } } scala object Main extends App { val apiService = new ApiService() val userId = "123" val user = apiService.getUser(userId) user match { case Right(response) => println(s"User info: ${response.body.getOrElse("")}") case Left(error) => println(s"An error occurred: ${error.getMessage}") } val userData = Json.obj("name" -> Json.fromString("John Doe")) val newUser = apiService.createUser(userData) newUser match { case Right(response) => println("New user created successfully") case Left(error) => println(s"An error occurred: ${error.getMessage}") } } sbt run


上一篇:
下一篇:
切换中文