Packages

class JsonClient extends AnyRef

HttpClient that simplifies json requests and responses by automatically serialize/deserialize native objects to and from json. JsonClient is fully asynchronous.

import org.mellowtech.jsonclient.{JsonClient,JsonResponse}
import scala.concurrent.Await
import scala.concurrent.duration._

case class ServerResponse(key: String, value: String)

object Test {
  import scala.concurrent.ExecutionContext.Implicits.global
  implicit val formats = org.json4s.DefaultFormats
  val jc = JsonClient()
  val resp = jc.get[ServerResponse]("http://pathToServiceApi")
  var res = Await.result(resp, 4 seconds)

  res.body match {
    case Some(sr) => println(sr)
    case None => println(res.statusCode
  }
  jc.close
}
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JsonClient
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new JsonClient()(implicit ec: ExecutionContext, as: ActorSystem, mat: ActorMaterializer)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def addBodyToRequest[A](body: A, request: HttpRequest)(implicit codec: JsonValueCodec[A]): Future[HttpRequest]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  7. def close(): Future[Terminated]
  8. def deleteRequest(uri: String): HttpRequest
  9. def discardResponseBody(response: HttpResponse): EmptyResponse
  10. implicit val ec: ExecutionContext
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  13. def get[A](uri: String)(implicit codec: JsonValueCodec[A]): Future[JsonResponse[A]]
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. def getRequest(uri: String): HttpRequest
  16. def getResponseBody[A](response: HttpResponse)(implicit codec: JsonValueCodec[A]): Future[JsonResponse[A]]
  17. def getString(httpRequest: HttpRequest): Future[StringResponse]
  18. def getString(url: String): Future[StringResponse]
  19. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  20. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  21. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  24. def post[A, B](uri: String, requestBody: B)(implicit requestBodyCodec: JsonValueCodec[B], responseBodyCodec: JsonValueCodec[A]): Future[JsonResponse[A]]
  25. def postRequest(uri: String): HttpRequest
  26. def putRequest(uri: String): HttpRequest
  27. def send[A](httpRequest: HttpRequest)(implicit codec: JsonValueCodec[A]): Future[JsonResponse[A]]
  28. def sendNoResponse(httpRequest: HttpRequest): Future[EmptyResponse]
  29. def sendRequest(request: HttpRequest): Future[HttpResponse]
  30. def sendWithBody[A, B](request: HttpRequest, requestBody: B)(implicit requestBodyCodec: JsonValueCodec[B], responseBodyCodec: JsonValueCodec[A]): Future[JsonResponse[A]]
  31. def sendWithBodyNoResponse[A](request: HttpRequest, requestBody: A)(implicit codec: JsonValueCodec[A]): Future[EmptyResponse]
  32. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  33. def toString(): String
    Definition Classes
    AnyRef → Any
  34. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  35. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  36. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from AnyRef

Inherited from Any

Ungrouped