Trait

endpoints.algebra.circe

JsonEntitiesFromCodec

Related Doc: package circe

Permalink

trait JsonEntitiesFromCodec extends algebra.JsonEntitiesFromCodec

Partial interpreter for endpoints.algebra.JsonEntitiesFromCodec that only fixes the JsonCodec[A] type to a CirceCodec.

The jsonRequest and jsonResponse operations have to be implemented by a more specialized interpreter.

Typical usage:

/* shared MyDto.scala */

case class MyDto(i: Int, s: String)

object MyDto {
  import io.circe.{Encoder, Decoder}
  import io.circe.generic.semiauto.{deriveEncoder, deriveDecoder}

  implicit val encoder: Encoder[MyDto] = deriveEncoder
  implicit val decoder: Decoder[MyDto] = deriveDecoder
}
/* shared endpoint definition */

trait MyEndpoints extends algebra.Endpoints with algebra.circe.JsonEntitiesFromCodec {
  val myEndpoint = endpoint(get(path), jsonResponse[MyDto])
}
/* client MyEndpointsClient.scala */

object MyEndpointsClient extends MyEndpoints with xhr.JsonEntitiesFromCodec with xhr.faithful.Endpoints

MyEndpointsClient.myEndpoint().map(myDto => println(myDto.i))
/* server MyEndpointsServer.scala */

object MyEndpointsServer extends MyEndpoints with play.server.JsonEntitiesFromCodec {

  val routes = routesFromEndpoints(
    myEndpoint.implementedBy(_ => MyDto(42, "foo"))
  )

}
Source
JsonEntitiesFromCodec.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JsonEntitiesFromCodec
  2. JsonEntitiesFromCodec
  3. JsonEntities
  4. Endpoints
  5. Responses
  6. Requests
  7. SemigroupalSyntax
  8. InvariantFunctorSyntax
  9. Methods
  10. Urls
  11. AnyRef
  12. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract type Endpoint[A, B]

    Permalink
    Definition Classes
    Endpoints
  2. implicit class InvariantFunctorSyntax[A, F[_]] extends AnyRef

    Permalink
    Definition Classes
    InvariantFunctorSyntax
  3. type JsonCodec[A] = CirceCodec[A]

    Permalink
    Definition Classes
    JsonEntitiesFromCodec → JsonEntitiesFromCodec
  4. type JsonRequest[A] = Codec[String, A]

    Permalink
    Definition Classes
    JsonEntitiesFromCodec → JsonEntities
  5. type JsonResponse[A] = Codec[String, A]

    Permalink
    Definition Classes
    JsonEntitiesFromCodec → JsonEntities
  6. abstract type Method

    Permalink
    Definition Classes
    Methods
  7. abstract type Path[A] <: Url[A]

    Permalink
    Definition Classes
    Urls
  8. implicit class PathOps[A] extends AnyRef

    Permalink
    Definition Classes
    Urls
  9. abstract type QueryString[A]

    Permalink
    Definition Classes
    Urls
  10. implicit class QueryStringOps[A] extends AnyRef

    Permalink
    Definition Classes
    Urls
  11. abstract type QueryStringParam[A]

    Permalink
    Definition Classes
    Urls
  12. abstract type Request[A]

    Permalink
    Definition Classes
    Requests
  13. abstract type RequestEntity[A]

    Permalink
    Definition Classes
    Requests
  14. abstract type RequestHeaders[A]

    Permalink
    Definition Classes
    Requests
  15. abstract type Response[A]

    Permalink
    Definition Classes
    Responses
  16. abstract type Segment[A]

    Permalink
    Definition Classes
    Urls
  17. implicit class SemigroupalSyntax[A, F[_]] extends AnyRef

    Permalink
    Definition Classes
    SemigroupalSyntax
  18. abstract type Url[A]

    Permalink
    Definition Classes
    Urls

Abstract Value Members

  1. abstract def Delete: Method

    Permalink
    Definition Classes
    Methods
  2. abstract def Get: Method

    Permalink
    Definition Classes
    Methods
  3. abstract def Options: Method

    Permalink
    Definition Classes
    Methods
  4. abstract def Patch: Method

    Permalink
    Definition Classes
    Methods
  5. abstract def Post: Method

    Permalink
    Definition Classes
    Methods
  6. abstract def Put: Method

    Permalink
    Definition Classes
    Methods
  7. abstract def chainPaths[A, B](first: Path[A], second: Path[B])(implicit tupler: Tupler[A, B]): Path[Out]

    Permalink
    Definition Classes
    Urls
  8. abstract def combineQueryStrings[A, B](first: QueryString[A], second: QueryString[B])(implicit tupler: Tupler[A, B]): QueryString[Out]

    Permalink
    Definition Classes
    Urls
  9. abstract def emptyHeaders: RequestHeaders[Unit]

    Permalink
    Definition Classes
    Requests
  10. abstract def emptyRequest: RequestEntity[Unit]

    Permalink
    Definition Classes
    Requests
  11. abstract def emptyResponse(docs: Documentation): Response[Unit]

    Permalink
    Definition Classes
    Responses
  12. abstract def endpoint[A, B](request: Request[A], response: Response[B], summary: Documentation, description: Documentation): Endpoint[A, B]

    Permalink
    Definition Classes
    Endpoints
  13. abstract def header(name: String, docs: Documentation): RequestHeaders[String]

    Permalink
    Definition Classes
    Requests
  14. implicit abstract def intQueryString: QueryStringParam[Int]

    Permalink
    Definition Classes
    Urls
  15. implicit abstract def intSegment: Segment[Int]

    Permalink
    Definition Classes
    Urls
  16. abstract def jsonRequest[A](docs: Documentation)(implicit arg0: JsonRequest[A]): RequestEntity[A]

    Permalink
    Definition Classes
    JsonEntities
  17. abstract def jsonResponse[A](docs: Documentation)(implicit arg0: JsonResponse[A]): Response[A]

    Permalink
    Definition Classes
    JsonEntities
  18. implicit abstract def longQueryString: QueryStringParam[Long]

    Permalink
    Definition Classes
    Urls
  19. implicit abstract def longSegment: Segment[Long]

    Permalink
    Definition Classes
    Urls
  20. abstract def optHeader(name: String, docs: Documentation): RequestHeaders[Option[String]]

    Permalink
    Definition Classes
    Requests
  21. abstract def optQs[A](name: String, docs: Documentation)(implicit value: QueryStringParam[A]): QueryString[Option[A]]

    Permalink
    Definition Classes
    Urls
  22. abstract def option[A](response: Response[A], notFoundDocs: Documentation): Response[Option[A]]

    Permalink
    Definition Classes
    Responses
  23. abstract def qs[A](name: String, docs: Documentation)(implicit value: QueryStringParam[A]): QueryString[A]

    Permalink
    Definition Classes
    Urls
  24. implicit abstract def reqEntityInvFunctor: InvariantFunctor[RequestEntity]

    Permalink
    Definition Classes
    Requests
  25. implicit abstract def reqHeadersInvFunctor: InvariantFunctor[RequestHeaders]

    Permalink
    Definition Classes
    Requests
  26. implicit abstract def reqHeadersSemigroupal: Semigroupal[RequestHeaders]

    Permalink
    Definition Classes
    Requests
  27. abstract def request[UrlP, BodyP, HeadersP, UrlAndBodyPTupled](method: Method, url: Url[UrlP], entity: RequestEntity[BodyP], headers: RequestHeaders[HeadersP])(implicit tuplerAB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerABC: Tupler[UrlAndBodyPTupled, HeadersP]): Request[Out]

    Permalink
    Definition Classes
    Requests
  28. abstract def segment[A](name: String, docs: Documentation)(implicit s: Segment[A]): Path[A]

    Permalink
    Definition Classes
    Urls
  29. abstract def staticPathSegment(segment: String): Path[Unit]

    Permalink
    Definition Classes
    Urls
  30. implicit abstract def stringQueryString: QueryStringParam[String]

    Permalink
    Definition Classes
    Urls
  31. implicit abstract def stringSegment: Segment[String]

    Permalink
    Definition Classes
    Urls
  32. abstract def textRequest(docs: Documentation): RequestEntity[String]

    Permalink
    Definition Classes
    Requests
  33. abstract def textResponse(docs: Documentation): Response[String]

    Permalink
    Definition Classes
    Responses
  34. implicit abstract def urlInvFunctor: InvariantFunctor[Url]

    Permalink
    Definition Classes
    Urls
  35. abstract def urlWithQueryString[A, B](path: Path[A], qs: QueryString[B])(implicit tupler: Tupler[A, B]): Url[Out]

    Permalink
    Definition Classes
    Urls

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. implicit def circeDecoderToDecoder[A](implicit decoder: io.circe.Decoder[A]): Decoder[Json, A]

    Permalink
  6. implicit def circeEncoderToEncoder[A](implicit encoder: io.circe.Encoder[A]): Encoder[A, Json]

    Permalink
  7. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. implicit def dummyPathToUrl[A](p: Path[A]): Url[A]

    Permalink
    Definition Classes
    Urls
  9. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def get[UrlP, HeadersP](url: Url[UrlP], headers: RequestHeaders[HeadersP])(implicit tuplerAC: Tupler[UrlP, HeadersP]): Request[Out]

    Permalink
    Definition Classes
    Requests
  13. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  14. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  15. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  16. implicit def jsonCodec[A](implicit codec: CirceCodec[A]): Codec[String, A]

    Permalink
    Definition Classes
    JsonEntitiesFromCodec → JsonEntitiesFromCodec
  17. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. val path: Path[Unit]

    Permalink
    Definition Classes
    Urls
  21. final def post[UrlP, BodyP, HeadersP, UrlAndBodyPTupled](url: Url[UrlP], entity: RequestEntity[BodyP], headers: RequestHeaders[HeadersP])(implicit tuplerAB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerABC: Tupler[UrlAndBodyPTupled, HeadersP]): Request[Out]

    Permalink
    Definition Classes
    Requests
  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  23. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  24. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from JsonEntities

Inherited from Endpoints

Inherited from Responses

Inherited from Requests

Inherited from Methods

Inherited from Urls

Inherited from AnyRef

Inherited from Any

Ungrouped