servant-combinators-0.0.2: Extra servant combinators for full WAI functionality.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Servant.API.HeaderList

Description

 
Synopsis

Documentation

data HeaderList Source #

The HeaderList combinator provides a list of Network.HTTP.Types.Header.Header values from the WAI request.

Example:

import Control.Monad.IO.Class (liftIO)
import Servant
import ServantExtras.HeaderList

import qualified Network.HTTP.Types.Header as NTH (Header)

type MyAPI = "my-header-endpoint"
           :> HeaderList
           :> Get '[JSON] NoContent

myServer :: Server MyAPI
myServer = headerEndpointHandler
 where
   headerEndpointHandler :: [NTH.Header] -> Handler NoContent
   headerEndpointHandler headers =
      let mCookieValue = lookup "merlinWasHere" headers in
      case mCookieValue of
       Nothing -> do
         liftIO $ print "Merlin was *NOT* here!"
         throwError err400 { errBody = "Clearly you've missed something." }
       Just message -> do
         liftIO $ do
           print "Merlin WAS here, and he left us a message!"
           print message
         pure NoContent

Instances

Instances details
HasServer api ctx => HasServer (HeaderList :> api :: Type) ctx Source # 
Instance details

Defined in Servant.API.HeaderList

Associated Types

type ServerT (HeaderList :> api) m #

Methods

route :: Proxy (HeaderList :> api) -> Context ctx -> Delayed env (Server (HeaderList :> api)) -> Router env #

hoistServerWithContext :: Proxy (HeaderList :> api) -> Proxy ctx -> (forall x. m x -> n x) -> ServerT (HeaderList :> api) m -> ServerT (HeaderList :> api) n #

type ServerT (HeaderList :> api :: Type) m Source # 
Instance details

Defined in Servant.API.HeaderList

type ServerT (HeaderList :> api :: Type) m = [Header] -> ServerT api m