servant-0.11: A family of combinators for defining webservices APIs

Safe Haskell | Safe
Language | Haskell2010

Servant.API.Header

Synopsis

- data Header sym a
  - = Header a
  - | MissingHeader
  - | UndecodableHeader ByteString

# Documentation

data Header sym a #

Extract the given header's value as a value of type `a`.

Example:

    >>> newtype Referer = Referer Text deriving (Eq, Show)
    >>>
    >>> -- GET /view-my-referer
    >>> type MyApi = "view-my-referer" :> Header "from" Referer :> Get '[JSON] Referer

Constructors

Header a |
MissingHeader |
UndecodableHeader ByteString |

Instances

(KnownSymbol h, ToHttpApiData v) => AddHeader h v (Headers ((:) * fst rest) a) (Headers ((:) * (Header h v) ((:) * fst rest)) a) # |
Methods addOptionalHeader :: Header h v -> Headers ((* ': fst) rest) a -> Headers ((* ': Header h v) ((* ': fst) rest)) a
Functor (Header sym) # |
Methods fmap :: (a -> b) -> Header sym a -> Header sym b # (<$) :: a -> Header sym b -> Header sym a #
(KnownSymbol h, ToHttpApiData x, GetHeaders (HList xs)) => GetHeaders (HList ((:) * (Header h x) xs)) # |
Methods getHeaders :: HList ((* ': Header h x) xs) -> [Header] #
HasLink k sub => HasLink * ((:>) k * (Header sym a) sub) # |
Associated Types type MkLink ((:>) k * (Header sym a) sub) (endpoint :: (:>) k * (Header sym a) sub) :: * # Methods toLink :: Proxy ((k :> *) (Header sym a) sub) endpoint -> Link -> MkLink ((k :> *) (Header sym a) sub) endpoint #
Eq a => Eq (Header sym a) # |
Methods (==) :: Header sym a -> Header sym a -> Bool # (/=) :: Header sym a -> Header sym a -> Bool #
Show a => Show (Header sym a) # |
Methods showsPrec :: Int -> Header sym a -> ShowS # show :: Header sym a -> String # showList :: [Header sym a] -> ShowS #
(KnownSymbol h, GetHeaders (HList rest), ToHttpApiData v) => GetHeaders (Headers ((:) * (Header h v) rest) a) # |
Methods getHeaders :: Headers ((* ': Header h v) rest) a -> [Header] #
(FromHttpApiData v, BuildHeadersTo xs, KnownSymbol h) => BuildHeadersTo ((:) * (Header h v) xs) # |
Methods buildHeadersTo :: [Header] -> HList ((* ': Header h v) xs) #
type MkLink * ((:>) k * (Header sym a) sub) # |
type MkLink * ((:>) k * (Header sym a) sub) = MkLink k sub