servant-server-0.20.2: A family of combinators for defining webservices APIs and serving them
Safe HaskellSafe-Inferred
LanguageHaskell2010

Servant.Server.Generic

Description

Since: 0.14.1

Synopsis

Documentation

data AsServerT (m :: Type -> Type) Source #

A type that specifies that an API record contains a server implementation.

Instances

Instances details
GenericMode (AsServerT m :: Type) Source # 
Instance details

Defined in Servant.Server.Internal

Associated Types

type (AsServerT m) :- api Source #

type (AsServerT m :: Type) :- api Source # 
Instance details

Defined in Servant.Server.Internal

type (AsServerT m :: Type) :- api = ServerT api m

genericServe :: forall routes. (HasServer (ToServantApi routes) '[], GenericServant routes AsServer, Server (ToServantApi routes) ~ ToServant routes AsServer) => routes AsServer -> Application Source #

Transform a record of routes into a WAI Application.

genericServeT Source #

Arguments

:: forall (routes :: Type -> Type) (m :: Type -> Type). (GenericServant routes (AsServerT m), GenericServant routes AsApi, HasServer (ToServantApi routes) '[], ServerT (ToServantApi routes) m ~ ToServant routes (AsServerT m)) 
=> (forall a. m a -> Handler a)

hoistServer argument to come back to Handler

-> routes (AsServerT m)

your record full of request handlers

-> Application 

Transform a record of routes with custom monad into a WAI Application, by providing a transformation to bring each handler back in the Handler monad.

genericServeTWithContext Source #

Arguments

:: forall (routes :: Type -> Type) (m :: Type -> Type) (ctx :: [Type]). (GenericServant routes (AsServerT m), GenericServant routes AsApi, HasServer (ToServantApi routes) ctx, HasContextEntry (ctx .++ DefaultErrorFormatters) ErrorFormatters, ServerT (ToServantApi routes) m ~ ToServant routes (AsServerT m)) 
=> (forall a. m a -> Handler a)

hoistServer argument to come back to Handler

-> routes (AsServerT m)

your record full of request handlers

-> Context ctx

the Context to serve the application with

-> Application 

Transform a record of routes with custom monad into a WAI Application, while using the given Context to serve the application (contexts are typically used by auth-related combinators in servant, e.g to hold auth checks) and the given transformation to map all the handlers back to the Handler monad.

genericServer :: GenericServant routes AsServer => routes AsServer -> ToServant routes AsServer Source #

Transform a record of endpoints into a Server.

genericServerT :: GenericServant routes (AsServerT m) => routes (AsServerT m) -> ToServant routes (AsServerT m) Source #

Transform a record of endpoints into a ServerT m.

You can see an example usage of this function in the Servant Cookbook.