package server
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- server
- EndpointResult
- ApiTransformer
- WitnessToStringLowPrio
- 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, M <: MethodType, ROut, F[_], Out] extends AnyRef
Represents a server endpoint and is basically a function which gets the expected input
VIn
and returns the expected output. -
trait
EndpointConstructor[F[_], Fn, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, ROut, Out] extends AnyRef
Fuses RouteExtractor and the endpoint function into an Endpoint.
-
sealed
trait
EndpointExecutor[El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, 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.
- trait EndpointResult extends AnyRef
- final case class ErrorCode(statusCode: Int) extends AnyVal with Product with Serializable
- final class ExecutableCompositionDerivation[F[_]] extends AnyRef
- final class ExecutableDerivation[F[_]] extends AnyRef
- sealed trait ExtractionError extends AnyRef
- sealed trait FilterClientElements[H <: HList] extends AnyRef
- sealed trait FilterClientElementsList[H <: HList] extends AnyRef
- sealed trait FilterClientElementsLowPrio extends AnyRef
- final case class HttpError(code: ErrorCode, message: String) 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, M <: MethodType, F[_], FOut] extends EndpointExecutor[El, KIn, VIn, M, 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, M <: MethodType, ROut <: HList, POut <: HList, F[_], FOut] extends EndpointExecutor[El, KIn, VIn, M, (BodyType[Bd], ROut), F, FOut]
-
type
Result[A] = Either[HttpError, (SuccessCode, A)]
- Definition Classes
- EndpointResult
-
trait
RouteExtractor[El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, EIn <: HList] extends AnyRef
Builds a function which extracts inputs from a given requests based on the API.
Builds 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
-
sealed
trait
ServerHeaderExtractor[El <: HList] extends AnyRef
- Annotations
- @implicitNotFound( ... )
- sealed trait ServerHeaderExtractorLowPrio extends AnyRef
- final case class ServerManager[S](server: S, host: String, port: Int) extends Product with Serializable
- final case class SuccessCode(statusCode: Int) extends AnyVal with Product with Serializable
- trait ValueExtractor[A] extends (String) ⇒ Option[A]
- trait ValueExtractorInstances extends AnyRef
Value Members
-
final
val
Accepted: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
AlreadyReported: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
BadGateway: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
BadRequest: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
ClientClosedRequest: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
Conflict: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
ConnectionClosedWithoutResult: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
Continue: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
Created: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
ExpectationFailed: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
FailedDependency: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
Forbidden: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
Found: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
GatewayTimeout: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
Gone: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
HTTPVersionNotSupported: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
IMUsed: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
ImAteapot: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
InsufficientStorage: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
InternalServerError: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
LengthRequired: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
Locked: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
LoopDetected: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
MethodNotAllowed: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
MisdirectedRequest: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
MovedPermanently: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
MultiStatus: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
MultipleChoices: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
NetworkAuthenticationRequired: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
NetworkConnectTimeoutError: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
NoContent: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
NonAuthoritativeInformation: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
NotAcceptable: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
NotExtended: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
NotFound: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
NotImplemented: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
NotModified: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
Ok: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
PartialContent: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
PayloadTooLarge: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
PaymentRequired: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
PermanentRedirect: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
PreconditionFailed: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
PreconditionRequired: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
Processing: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
ProxyAuthenticationRequired: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
RequestHeaderFieldsTooLarge: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
RequestTimeout: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
RequestURITooLong: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
RequestedRangeNotSatisfiable: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
ResetContent: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
SeeOther: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
ServiceUnavailable: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
SwitchingProtocols: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
TemporaryRedirect: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
TooManyRequests: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
Unauthorized: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
UnavailableForLegalReasons: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
UnprocessableEntity: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
UnsupportedMediaType: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
UpgradeRequired: ErrorCode
- Definition Classes
- EndpointResult
-
final
val
UseProxy: SuccessCode
- Definition Classes
- EndpointResult
-
final
val
VariantAlsoNegotiates: ErrorCode
- Definition Classes
- EndpointResult
-
implicit
def
clientHeaderCollParamTransformer[V, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[ClientHeaderCollParam[V], (El, KIn, VIn, M, Out), (::[ClientHeaderCollInput, El], KIn, ::[Map[String, V], VIn], M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
clientHeaderElementTransformer[K, V, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[ClientHeaderElement[K, V], (El, KIn, VIn, M, Out), (::[ClientHeader[K, V], El], KIn, VIn, M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
clientHeaderParamTransformer[K, V, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[ClientHeaderParam[K, V], (El, KIn, VIn, M, Out), (::[ClientHeaderInput, El], ::[K, KIn], ::[V, VIn], M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
deleteTransformer[MT <: MediaType, A]: Aux[DeleteElement[MT, A], Unit, (HNil, HNil, HNil, DeleteCall, FieldType[MT, A])]
- Definition Classes
- ApiTransformer
- def derive[F[_]]: ExecutableDerivation[F]
- def deriveAll[F[_]]: ExecutableCompositionDerivation[F]
-
final
def
errorWith[A](code: ErrorCode, message: String): Result[A]
- Definition Classes
- EndpointResult
-
implicit
def
fixedHeaderElementTransformer[K, V, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[FixedHeaderElement[K, V], (El, KIn, VIn, M, Out), (::[FixedHeader[K, V], El], KIn, VIn, M, Out)]
- Definition Classes
- ApiTransformer
-
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[MT <: MediaType, A]: Aux[GetElement[MT, A], Unit, (HNil, HNil, HNil, GetCall, FieldType[MT, A])]
- Definition Classes
- ApiTransformer
-
implicit
def
headerParamTransformer[S, A, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[HeaderParam[S, A], (El, KIn, VIn, M, Out), (::[HeaderInput, El], ::[S, KIn], ::[A, VIn], M, 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, M <: MethodType, ROut, F[_], FOut, Req, Resp, Out](server: ServerManager[S], endpoint: Endpoint[El, KIn, VIn, M, ROut, F, FOut])(implicit executor: Aux[Req, El, KIn, VIn, M, ROut, F, FOut, Resp], mounting: Aux[S, Req, Resp, Out]): Out
-
implicit
def
pathElementTransformer[S, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[PathElement[S], (El, KIn, VIn, M, Out), (::[S, El], KIn, VIn, M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
postTransformer[MT <: MediaType, A]: Aux[PostElement[MT, A], Unit, (HNil, HNil, HNil, PostCall, FieldType[MT, A])]
- Definition Classes
- ApiTransformer
-
implicit
def
postWithBodyTransformer[BMT <: MediaType, Bd, MT <: MediaType, A]: Aux[PostWithBodyElement[BMT, Bd, MT, A], Unit, (HNil, ::[FieldType[BMT, (BodyField)#T], HNil], ::[Bd, HNil], PostWithBodyCall, FieldType[MT, A])]
- Definition Classes
- ApiTransformer
-
implicit
def
putTransformer[MT <: MediaType, A]: Aux[PutElement[MT, A], Unit, (HNil, HNil, HNil, PutCall, FieldType[MT, A])]
- Definition Classes
- ApiTransformer
-
implicit
def
putWithBodyTransformer[BMT <: MediaType, Bd, MT <: MediaType, A]: Aux[PutWithBodyElement[BMT, Bd, MT, A], Unit, (HNil, ::[FieldType[BMT, (BodyField)#T], HNil], ::[Bd, HNil], PutWithBodyCall, FieldType[MT, A])]
- Definition Classes
- ApiTransformer
-
implicit
def
queryListParamTransformer[S, A, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[QueryParam[S, List[A]], (El, KIn, VIn, M, Out), (::[QueryInput, El], ::[S, KIn], ::[List[A], VIn], M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
queryParamTransformer[S, A, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[QueryParam[S, A], (El, KIn, VIn, M, Out), (::[QueryInput, El], ::[S, KIn], ::[A, VIn], M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
segmentParamTransformer[S, A, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[SegmentParam[S, A], (El, KIn, VIn, M, Out), (::[SegmentInput, El], ::[S, KIn], ::[A, VIn], M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
serverHeaderMatchParamTransformer[K, V, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[ServerHeaderMatchParam[K, V], (El, KIn, VIn, M, Out), (::[ServerHeaderMatchInput, El], ::[K, KIn], ::[Map[String, V], VIn], M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
serverHeaderSendElementTransformer[K, V, El <: HList, KIn <: HList, VIn <: HList, M <: MethodType, Out]: Aux[ServerHeaderSendElement[K, V], (El, KIn, VIn, M, Out), (::[ServerHeaderSend[K, V], El], KIn, VIn, M, Out)]
- Definition Classes
- ApiTransformer
-
implicit
def
stringKey[K <: String]: WitnessToString[K]
- Definition Classes
- WitnessToStringLowPrio
-
final
def
success[A](a: A): Result[A]
- Definition Classes
- EndpointResult
-
final
def
successWith[A](code: SuccessCode)(a: A): Result[A]
- Definition Classes
- EndpointResult
-
implicit
def
symbolKey[K <: Symbol]: WitnessToString[K]
- Definition Classes
- WitnessToStringLowPrio
- object EndpointExecutor
- object FilterClientElements extends FilterClientElementsLowPrio
- object FilterClientElementsList
- 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 ServerHeaderExtractor extends ServerHeaderExtractorLowPrio
- object ServerManager extends Serializable
- object ValueExtractor extends ValueExtractorInstances
- object endpointToServe extends Poly1