endpoints.algebra.playjson

JsonEntitiesFromCodec

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
algebra.JsonEntitiesFromCodec, JsonEntities, Endpoints, Responses, Requests, endpoints.SemigroupalSyntax, endpoints.InvariantFunctorSyntax, Methods, Urls, AnyRef, Any
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
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. abstract type Endpoint[A, B]

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

    Definition Classes
    InvariantFunctorSyntax
  3. type JsonCodec[A] = Format[A]

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

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

    Definition Classes
    JsonEntitiesFromCodec → JsonEntities
  6. abstract type Method

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

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

    Definition Classes
    Urls
  9. abstract type QueryString[A]

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

    Definition Classes
    Urls
  11. abstract type QueryStringParam[A]

    Definition Classes
    Urls
  12. abstract type Request[A]

    Definition Classes
    Requests
  13. abstract type RequestEntity[A]

    Definition Classes
    Requests
  14. abstract type RequestHeaders[A]

    Definition Classes
    Requests
  15. abstract type Response[A]

    Definition Classes
    Responses
  16. abstract type Segment[A]

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

    Definition Classes
    SemigroupalSyntax
  18. abstract type Url[A]

    Definition Classes
    Urls

Abstract Value Members

  1. abstract def Delete: Method

    Definition Classes
    Methods
  2. abstract def Get: Method

    Definition Classes
    Methods
  3. abstract def Options: Method

    Definition Classes
    Methods
  4. abstract def Patch: Method

    Definition Classes
    Methods
  5. abstract def Post: Method

    Definition Classes
    Methods
  6. abstract def Put: Method

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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]

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

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

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

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

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

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

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

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

    Definition Classes
    Urls

Concrete Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

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

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

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

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

    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]

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

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

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

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

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

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

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

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

    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]

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

    Definition Classes
    AnyRef
  23. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from algebra.JsonEntitiesFromCodec

Inherited from JsonEntities

Inherited from Endpoints

Inherited from Responses

Inherited from Requests

Inherited from endpoints.SemigroupalSyntax

Inherited from endpoints.InvariantFunctorSyntax

Inherited from Methods

Inherited from Urls

Inherited from AnyRef

Inherited from Any

Ungrouped