| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Servant.Named
Description
This module uses the named package to match names with parameters. For example, this api:
type API = "users" :> (QueryParam "category" Category :>
QueryParam' '[Required, Strict] "sort_by" SortBy :>
QueryFlag "with_schema" :>
QueryParams "filters" Filter :>
Get '[JSON] User
can be written with named:
type API = "users" :> (OptionalQueryParam "category" Category :>
NamedQueryParam "sort_by" SortBy :>
NamedQueryFlag "with_schema" :>
NamedQueryParams "filters" Filter :>
Get '[JSON] User
The servant-named-client and servant-named-server will create
functions that use the named package to match the names with the
parameters.
Synopsis
- type NamedQueryParam = NamedQueryParam' [Required, Strict]
- type OptionalQueryParam = NamedQueryParam' [Optional, Strict]
- data NamedQueryParams (sym :: Symbol) (a :: *)
- data NamedQueryFlag (sym :: Symbol)
- data NamedQueryParam' (mods :: [*]) (sym :: Symbol) (a :: *)
Documentation
type NamedQueryParam = NamedQueryParam' [Required, Strict] Source #
Like QueryParam, but instead of extracting a type a, it
extracts a named type named , where named corresponds to
the query parameter string.:! a
type OptionalQueryParam = NamedQueryParam' [Optional, Strict] Source #
Lookup the value associated to the sym query string parameter and
try to extract it as an optional named argument of type sym .:?
a
data NamedQueryParams (sym :: Symbol) (a :: *) Source #
Like QueryParams, but extracts a named type named
instead, where named corresponds to the query parameter string.
The default value is the empty list `[]`:? [a]
Instances
| (KnownSymbol sym, ToHttpApiData v, HasLink sub) => HasLink (NamedQueryParams sym v :> sub :: Type) Source # | |
Defined in Servant.Named Associated Types type MkLink (NamedQueryParams sym v :> sub) a # Methods toLink :: (Link -> a) -> Proxy (NamedQueryParams sym v :> sub) -> Link -> MkLink (NamedQueryParams sym v :> sub) a # | |
| type MkLink (NamedQueryParams sym v :> sub :: Type) a Source # | |
Defined in Servant.Named | |
data NamedQueryFlag (sym :: Symbol) Source #
Like `QueryFlag, but extracts a named type named
instead, where named corresponds to the query parameter string.
The default value is False.:? Bool
Instances
| (KnownSymbol sym, HasLink sub) => HasLink (NamedQueryFlag sym :> sub :: Type) Source # | |
Defined in Servant.Named Associated Types type MkLink (NamedQueryFlag sym :> sub) a # Methods toLink :: (Link -> a) -> Proxy (NamedQueryFlag sym :> sub) -> Link -> MkLink (NamedQueryFlag sym :> sub) a # | |
| type MkLink (NamedQueryFlag sym :> sub :: Type) a Source # | |
Defined in Servant.Named | |
data NamedQueryParam' (mods :: [*]) (sym :: Symbol) (a :: *) Source #
Like QueryParam`, but instead of extracting a type a, it
extracts a named type , where the name
corresponds to the query parameter string.NamedF f a sym
Instances
| (KnownSymbol sym, ToHttpApiData v, HasLink sub, SBoolI (FoldRequired mods)) => HasLink (NamedQueryParam' mods sym v :> sub :: Type) Source # | |
Defined in Servant.Named Associated Types type MkLink (NamedQueryParam' mods sym v :> sub) a # Methods toLink :: (Link -> a) -> Proxy (NamedQueryParam' mods sym v :> sub) -> Link -> MkLink (NamedQueryParam' mods sym v :> sub) a # | |
| type MkLink (NamedQueryParam' mods sym v :> sub :: Type) a Source # | |
Defined in Servant.Named type MkLink (NamedQueryParam' mods sym v :> sub :: Type) a = If (FoldRequired mods) (sym :! v) (sym :? v) -> MkLink sub a | |