servant-server-0.17: A family of combinators for defining webservices APIs and serving them

Safe HaskellNone
LanguageHaskell2010

Servant.Server.Generic

Description

Since: 0.14.1

Synopsis

Documentation

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

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

Instances
GenericMode (AsServerT m) Source # 
Instance details

Defined in Servant.Server.Generic

Associated Types

type (AsServerT m) :- api :: Type #

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

Defined in Servant.Server.Generic

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

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

Transform record of routes into a WAI Application.

genericServeT Source #

Arguments

:: forall (routes :: * -> *) (m :: * -> *). (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 :: * -> *) (m :: * -> *) (ctx :: [*]). (GenericServant routes (AsServerT m), GenericServant routes AsApi, HasServer (ToServantApi routes) ctx, 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 record of endpoints into a Server.

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