package server
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- server
- FoldResultEvidenceLowPrio
- ApiTransformer
- TypeLevelFoldLeftListLowPrio
- TypeLevelFoldLeftLowPrio
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Type Members
- final case class BadRouteRequest(msg: String) extends ExtractionError with Product with Serializable
- final case class BodyType[Bd]() extends Product with Serializable
-
abstract
class
Endpoint[El <: HList, KIn <: HList, VIn <: HList, ROut, F[_], Out] extends AnyRef
Container storing the extractor and function of an endpoint.
-
trait
EndpointConstructor[F[_], Fn, El <: HList, KIn <: HList, VIn <: HList, ROut, Out] extends AnyRef
Fuses RouteExtractor, FunApply and endpoint function fun into an Endpoint.
-
sealed
trait
EndpointExecutor[El <: HList, KIn <: HList, VIn <: HList, ROut, F[_], FOut] extends AnyRef
- Annotations
- @implicitNotFound( ... )
-
final
case class
EndpointRequest(method: String, uri: List[String], queries: Map[String, List[String]], headers: Map[String, String]) extends Product with Serializable
Request representation which every server implementation has to provide.
- final class ExecutableCompositionDerivation[F[_]] extends AnyRef
- final class ExecutableDerivation[F[_]] extends AnyRef
- sealed trait ExtractionError extends AnyRef
- final case class FunctionComposition[Fns <: HList](fns: Fns) extends Product with Serializable
-
sealed
trait
MergeToEndpoint[F[_], Consts <: HList, Fns <: HList] extends AnyRef
- Annotations
- @implicitNotFound( ... )
- trait MergeToEndpointLowPrio extends AnyRef
- trait MountEndpoints[S, Req, Resp] extends AnyRef
- trait NoReqBodyExecutor[El <: HList, KIn <: HList, VIn <: HList, F[_], FOut] extends EndpointExecutor[El, KIn, VIn, VIn, F, FOut]
-
sealed
trait
PrecompileEndpoint[F[_], H <: HList] extends AnyRef
Compiles RouteExtractor and FunApply for every API endpoint and generates expected list of endpoint functions.
Compiles RouteExtractor and FunApply for every API endpoint and generates expected list of endpoint functions.
- Annotations
- @implicitNotFound( ... )
- trait PrecompileEndpointLowPrio extends AnyRef
- trait ReqBodyExecutor[El <: HList, KIn <: HList, VIn <: HList, Bd, ROut <: HList, POut <: HList, F[_], FOut] extends EndpointExecutor[El, KIn, VIn, (BodyType[Bd], ROut), F, FOut]
-
trait
RouteExtractor[El <: HList, KIn <: HList, VIn <: HList, EIn <: HList] extends AnyRef
Build a function which extracts inputs from a given requests based on the API.
Build a function which extracts inputs from a given requests based on the API.
- if a request path does not fit the API definition
RouteNotFound
is returned - if a query, header, body, etc is missing
BadRouteRequest
is returned
- Annotations
- @implicitNotFound( ... )
- if a request path does not fit the API definition
- trait RouteExtractorLowPrio extends AnyRef
- trait RouteExtractorMediumPrio extends RouteExtractorLowPrio
-
trait
Serve[Req, Resp] extends AnyRef
Reduces an Endpoint and its EndpointExecutor to a simple Request => Response function.
-
sealed
trait
ServeToList[H <: HList, Req, Resp] extends AnyRef
- Annotations
- @implicitNotFound( ... )
- trait ServeToListLowPrio extends AnyRef
- final case class ServerManager[S](server: S, host: String, port: Int) extends Product with Serializable
- sealed trait ValueExtractor[A] extends (String) ⇒ Option[A]
- trait ValueExtractorInstances extends AnyRef
Value Members
-
implicit
def
deleteTransformer[A]: Aux[DeleteElement[A], (HNil, HNil, HNil), (::[DeleteCall, HNil], HNil, HNil, A)]
- Definition Classes
- ApiTransformer
- def derive[F[_]]: ExecutableDerivation[F]
- def deriveAll[F[_]]: ExecutableCompositionDerivation[F]
-
implicit
def
evidence[El0 <: HList, KIn0 <: HList, VIn0 <: HList, Out0]: Aux[(El0, KIn0, VIn0, Out0), El0, KIn0, VIn0, Out0]
- Definition Classes
- FoldResultEvidenceLowPrio
-
implicit
def
foldCase[H, T <: HList, Agg, FtOut, FOut](implicit f: Aux[H, Agg, FtOut], next: Lazy[Aux[T, FtOut, FOut]]): Aux[::[H, T], Agg, FOut]
- Definition Classes
- TypeLevelFoldLeftLowPrio
-
implicit
def
folderLeftList[H <: HList, Agg, T <: HList](implicit folder0: TypeLevelFoldLeft[H, Agg], list: TypeLevelFoldLeftList[T]): TypeLevelFoldLeftList[::[H, T]] { type Out = folder0.Out :: list.Out }
- Definition Classes
- TypeLevelFoldLeftListLowPrio
-
implicit
def
getTransformer[A]: Aux[GetElement[A], (HNil, HNil, HNil), (::[GetCall, HNil], HNil, HNil, A)]
- Definition Classes
- ApiTransformer
-
implicit
def
headerElementTransformer[S <: Symbol, A, El <: HList, KIn <: HList, VIn <: HList, Out]: Aux[HeaderParam[S, A], (El, KIn, VIn, Out), (::[HeaderInput, El], ::[S, KIn], ::[A, VIn], Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
hnilCase[Agg]: Aux[HNil, Agg, Agg]
- Definition Classes
- TypeLevelFoldLeftLowPrio
-
implicit
def
lastFoldLeftList[H <: HList, Agg](implicit folder0: TypeLevelFoldLeft[H, Agg]): TypeLevelFoldLeftList[::[H, HNil]] { type Out = folder0.Out :: shapeless.HNil }
- Definition Classes
- TypeLevelFoldLeftListLowPrio
- def mount[S, End <: HList, Serv <: HList, Req, Resp, Out](server: ServerManager[S], end: End)(implicit mapper: Aux[endpointToServe.type, End, Serv], toList: ServeToList[Serv, Req, Resp], mounting: Aux[S, Req, Resp, Out]): Out
- def mount[S, El <: HList, KIn <: HList, VIn <: HList, ROut, F[_], FOut, Req, Resp, Out](server: ServerManager[S], endpoint: Endpoint[El, KIn, VIn, ROut, F, FOut])(implicit executor: Aux[Req, El, KIn, VIn, ROut, F, FOut, Resp], mounting: Aux[S, Req, Resp, Out]): Out
-
implicit
def
pathElementTransformer[S, El <: HList, KIn <: HList, VIn <: HList, Out]: Aux[PathElement[S], (El, KIn, VIn, Out), (::[S, El], KIn, VIn, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
postTransformer[A]: Aux[PostElement[A], (HNil, HNil, HNil), (::[PostCall, HNil], HNil, HNil, A)]
- Definition Classes
- ApiTransformer
-
implicit
def
postWithBodyTransformer[Bd, A]: Aux[PostWithBodyElement[Bd, A], (HNil, HNil, HNil), (::[PostWithBodyCall[Bd], HNil], ::[(BodyField)#T, HNil], ::[Bd, HNil], A)]
- Definition Classes
- ApiTransformer
-
implicit
def
putTransformer[A]: Aux[PutElement[A], (HNil, HNil, HNil), (::[PutCall, HNil], HNil, HNil, A)]
- Definition Classes
- ApiTransformer
-
implicit
def
putWithBodyTransformer[Bd, A]: Aux[PutWithBodyElement[Bd, A], (HNil, HNil, HNil), (::[PutWithBodyCall[Bd], HNil], ::[(BodyField)#T, HNil], ::[Bd, HNil], A)]
- Definition Classes
- ApiTransformer
-
implicit
def
queryElementTransformer[S <: Symbol, A, El <: HList, KIn <: HList, VIn <: HList, Out]: Aux[QueryParam[S, A], (El, KIn, VIn, Out), (::[QueryInput, El], ::[S, KIn], ::[A, VIn], Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
queryListElementTransformer[S <: Symbol, A, El <: HList, KIn <: HList, VIn <: HList, Out]: Aux[QueryParam[S, List[A]], (El, KIn, VIn, Out), (::[QueryInput, El], ::[S, KIn], ::[List[A], VIn], Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
rawHeadersElementTransformer[El <: HList, KIn <: HList, VIn <: HList, Out]: Aux[RawHeadersParam.type, (El, KIn, VIn, Out), (::[RawHeadersInput, El], ::[(RawHeadersField)#T, KIn], ::[Map[String, String], VIn], Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
segmentElementTransformer[S <: Symbol, A, El <: HList, KIn <: HList, VIn <: HList, Out]: Aux[SegmentParam[S, A], (El, KIn, VIn, Out), (::[SegmentInput, El], ::[S, KIn], ::[A, VIn], Out)]
- Definition Classes
- ApiTransformer
- object =:
- object EndpointExecutor
- object MergeToEndpoint extends MergeToEndpointLowPrio
- object MountEndpoints
- object PrecompileEndpoint extends PrecompileEndpointLowPrio
- object RouteExtractor extends RouteExtractorMediumPrio
- object RouteNotFound extends ExtractionError with Product with Serializable
- object ServeToList extends ServeToListLowPrio
- object ServerManager extends Serializable
- object ValueExtractor extends ValueExtractorInstances
- object endpointToServe extends Poly1