diff options
Diffstat (limited to 'circe/src/main/scala')
-rw-r--r-- | circe/src/main/scala/com/softwaremill/sttp/circe.scala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/circe/src/main/scala/com/softwaremill/sttp/circe.scala b/circe/src/main/scala/com/softwaremill/sttp/circe.scala new file mode 100644 index 0000000..95a72e1 --- /dev/null +++ b/circe/src/main/scala/com/softwaremill/sttp/circe.scala @@ -0,0 +1,17 @@ +package com.softwaremill.sttp + +import com.softwaremill.sttp.model._ +import io.circe.parser._ +import io.circe.{Decoder, Encoder} + +package object circe { + private[sttp] val ApplicationJsonContentType = "application/json" + + implicit def circeBodySerializer[B]( + implicit encoder: Encoder[B]): BodySerializer[B] = + b => StringBody(encoder(b).noSpaces, Utf8, Some(ApplicationJsonContentType)) + + def asJson[B: Decoder]: ResponseAs[Either[io.circe.Error, B], Nothing] = + asString(Utf8).map(decode[B]) + +} |