Trait

endpoints.algebra.playjson

JsonEntitiesFromCodec

Related Doc: package playjson

Permalink

trait JsonEntitiesFromCodec extends algebra.JsonEntitiesFromCodec

Partial interpreter for endpoints.algebra.JsonEntitiesFromCodec that only fixes the JsonCodec[A] type to Play’s Format[A].

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 play.api.libs.{Format, Json}

  implicit val jsonFormat: Format[MyDto] = Json.format[MyDto]
}
/* shared endpoint definition */

trait MyEndpoints extends algebra.Endpoints with algebra.playjson.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] = Format[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. implicit class ResponseExtensions[A] extends AnyRef

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

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

    Permalink
    Definition Classes
    SemigroupalSyntax
  19. 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, tags: List[String]): 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 qs[A](name: String, docs: Documentation)(implicit value: QueryStringParam[A]): QueryString[A]

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

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

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

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

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

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    Responses

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. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def delete[UrlP, HeadersP, Out](url: Url[UrlP], headers: RequestHeaders[HeadersP])(implicit tuplerUH: Tupler.Aux[UrlP, HeadersP, Out]): Request[Out]

    Permalink
    Definition Classes
    Requests
  7. implicit def dummyPathToUrl[A](p: Path[A]): Url[A]

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    Any
  15. implicit def jsonCodec[A](implicit arg0: Format[A]): Codec[String, A]

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

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

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

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

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

    Permalink
    Definition Classes
    Requests
  21. final def put[UrlP, BodyP, HeadersP, UrlAndBodyPTupled, Out](url: Url[UrlP], entity: RequestEntity[BodyP], headers: RequestHeaders[HeadersP])(implicit tuplerUB: Tupler.Aux[UrlP, BodyP, UrlAndBodyPTupled], tuplerUBH: Tupler.Aux[UrlAndBodyPTupled, HeadersP, Out]): 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