57f0b0b390
Currently there is no way for Servant users to customize formatting of error messages that arise when combinators can't parse URL or request body, apart from reimplementing those combinators for themselves or using middlewares. This commit adds a possibility to specify custom error formatters through Context. Fixes #685
33 lines
886 B
Haskell
33 lines
886 B
Haskell
{-# LANGUAGE DataKinds #-}
|
|
{-# LANGUAGE DeriveDataTypeable #-}
|
|
{-# LANGUAGE PolyKinds #-}
|
|
{-# OPTIONS_HADDOCK not-home #-}
|
|
module Servant.API.Header (
|
|
Header, Header',
|
|
) where
|
|
|
|
import Data.Typeable
|
|
(Typeable)
|
|
import GHC.TypeLits
|
|
(Symbol)
|
|
import Servant.API.Modifiers
|
|
|
|
-- | Extract the given header's value as a value of type @a@.
|
|
-- I.e. header sent by client, parsed by server.
|
|
--
|
|
-- Example:
|
|
--
|
|
-- >>> newtype Referer = Referer Text deriving (Eq, Show)
|
|
-- >>>
|
|
-- >>> -- GET /view-my-referer
|
|
-- >>> type MyApi = "view-my-referer" :> Header "from" Referer :> Get '[JSON] Referer
|
|
type Header = Header' '[Optional, Strict]
|
|
|
|
data Header' (mods :: [*]) (sym :: Symbol) (a :: *)
|
|
deriving Typeable
|
|
|
|
-- $setup
|
|
-- >>> import Servant.API
|
|
-- >>> import Data.Aeson
|
|
-- >>> import Data.Text
|