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

Safe Haskell | None
Language | Haskell2010

Servant.API.Verbs

Synopsis

- type Get = Verb 'GET 200
- type Put = Verb 'PUT 200
- type Delete = Verb 'DELETE 200
- type DeleteAccepted = Verb 'DELETE 202
- type DeleteNoContent = NoContentVerb 'DELETE
- type DeleteNonAuthoritative = Verb 'DELETE 203
- type GetAccepted = Verb 'GET 202
- type GetNoContent = NoContentVerb 'GET
- type GetNonAuthoritative = Verb 'GET 203
- type GetPartialContent = Verb 'GET 206
- type GetResetContent = Verb 'GET 205
- data NoContentVerb (method :: k1)
- type Patch = Verb 'PATCH 200
- type PatchAccepted = Verb 'PATCH 202
- type PatchNoContent = NoContentVerb 'PATCH
- type PatchNonAuthoritative = Verb 'PATCH 203
- type Post = Verb 'POST 200
- type PostAccepted = Verb 'POST 202
- type PostCreated = Verb 'POST 201
- type PostNoContent = NoContentVerb 'POST
- type PostNonAuthoritative = Verb 'POST 203
- type PostResetContent = Verb 'POST 205
- type PutAccepted = Verb 'PUT 202
- type PutCreated = Verb 'PUT 201
- type PutNoContent = NoContentVerb 'PUT
- type PutNonAuthoritative = Verb 'PUT 203
- class ReflectMethod (a :: k) where
  - reflectMethod :: Proxy a -> Method
- data Verb (method :: k1) (statusCode :: Nat) (contentTypes :: [Type]) a
- type HeadNoContent = NoContentVerb 'HEAD
- type DeleteResetContent = Verb 'DELETE 205
- type PatchResetContent = Verb 'PATCH 205
- type PutResetContent = Verb 'PUT 205
- data StdMethod
  - = GET
  - | POST
  - | HEAD
  - | PUT
  - | DELETE
  - | TRACE
  - | CONNECT
  - | OPTIONS
  - | PATCH

# Documentation

type Get = Verb 'GET 200 #

`GET` with 200 status code.

type Put = Verb 'PUT 200 #

`PUT` with 200 status code.

type Delete = Verb 'DELETE 200 #

`DELETE` with 200 status code.

type DeleteAccepted = Verb 'DELETE 202 #

`DELETE` with 202 status code.

type DeleteNoContent = NoContentVerb 'DELETE #

`DELETE` with 204 status code.

type DeleteNonAuthoritative = Verb 'DELETE 203 #

`DELETE` with 203 status code.

type GetAccepted = Verb 'GET 202 #

`GET` with 202 status code.

type GetNoContent = NoContentVerb 'GET #

`GET` with 204 status code.

type GetNonAuthoritative = Verb 'GET 203 #

`GET` with 203 status code.

type GetPartialContent = Verb 'GET 206 #

`GET` with 206 status code.

type GetResetContent = Verb 'GET 205 #

`GET` with 205 status code.

data NoContentVerb (method :: k1) #

`NoContentVerb` is a specific type to represent `NoContent` responses. It does not require either a list of content types (because there's no content) or a status code (because it should always be 204).

#### Instances

Instances details

HasLink (NoContentVerb m :: Type) # |
Instance details Defined in Servant.Links Methods toLink :: (Link -> a) -> Proxy (NoContentVerb m) -> Link -> MkLink (NoContentVerb m) a #
Generic (NoContentVerb method) # |
Instance details Defined in Servant.API.Verbs Associated Types
type Rep (NoContentVerb method) |
Instance details Defined in Servant.API.Verbs type Rep (NoContentVerb method) = D1 ('MetaData "NoContentVerb" "Servant.API.Verbs" "servant-0.20.2-9fHyWNA72dIEEHjgDnkpGL" 'False) (V1 :: Type -> Type)
Methods from :: NoContentVerb method -> Rep (NoContentVerb method) x # to :: Rep (NoContentVerb method) x -> NoContentVerb method #
type MkLink (NoContentVerb m :: Type) r # |
Instance details Defined in Servant.Links type MkLink (NoContentVerb m :: Type) r = r
type Rep (NoContentVerb method) # |
Instance details Defined in Servant.API.Verbs type Rep (NoContentVerb method) = D1 ('MetaData "NoContentVerb" "Servant.API.Verbs" "servant-0.20.2-9fHyWNA72dIEEHjgDnkpGL" 'False) (V1 :: Type -> Type)

type Patch = Verb 'PATCH 200 #

`PATCH` with 200 status code.

type PatchAccepted = Verb 'PATCH 202 #

`PATCH` with 202 status code.

type PatchNoContent = NoContentVerb 'PATCH #

`PATCH` with 204 status code.

type PatchNonAuthoritative = Verb 'PATCH 203 #

`PATCH` with 203 status code.

type Post = Verb 'POST 200 #

`POST` with 200 status code.

type PostAccepted = Verb 'POST 202 #

`POST` with 202 status code.

type PostCreated = Verb 'POST 201 #

`POST` with 201 status code.

type PostNoContent = NoContentVerb 'POST #

`POST` with 204 status code.

type PostNonAuthoritative = Verb 'POST 203 #

`POST` with 203 status code.

type PostResetContent = Verb 'POST 205 #

`POST` with 205 status code.

type PutAccepted = Verb 'PUT 202 #

`PUT` with 202 status code.

type PutCreated = Verb 'PUT 201 #

`PUT` with 201 status code.

type PutNoContent = NoContentVerb 'PUT #

`PUT` with 204 status code.

type PutNonAuthoritative = Verb 'PUT 203 #

`PUT` with 203 status code.

class ReflectMethod (a :: k) where #

Methods

reflectMethod :: Proxy a -> Method #

#### Instances

Instances details

ReflectMethod 'CONNECT # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'CONNECT -> Method #
ReflectMethod 'DELETE # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'DELETE -> Method #
ReflectMethod 'GET # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'GET -> Method #
ReflectMethod 'HEAD # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'HEAD -> Method #
ReflectMethod 'OPTIONS # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'OPTIONS -> Method #
ReflectMethod 'PATCH # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'PATCH -> Method #
ReflectMethod 'POST # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'POST -> Method #
ReflectMethod 'PUT # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'PUT -> Method #
ReflectMethod 'TRACE # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'TRACE -> Method #

data Verb (method :: k1) (statusCode :: Nat) (contentTypes :: [Type]) a #

`Verb` is a general type for representing HTTP verbs (a.k.a. methods). For convenience, type synonyms for each verb with a 200 response code are provided, but you are free to define your own:

    >>> type Post204 contentTypes a = Verb 'POST 204 contentTypes a

#### Instances

Instances details

HasLink (Verb m s ct a :: Type) # |
Instance details Defined in Servant.Links Methods toLink :: (Link -> a0) -> Proxy (Verb m s ct a) -> Link -> MkLink (Verb m s ct a) a0 #
Generic (Verb method statusCode contentTypes a) # |
Instance details Defined in Servant.API.Verbs Associated Types
type Rep (Verb method statusCode contentTypes a) |
Instance details Defined in Servant.API.Verbs type Rep (Verb method statusCode contentTypes a) = D1 ('MetaData "Verb" "Servant.API.Verbs" "servant-0.20.2-9fHyWNA72dIEEHjgDnkpGL" 'False) (V1 :: Type -> Type)
Methods from :: Verb method statusCode contentTypes a -> Rep (Verb method statusCode contentTypes a) x # to :: Rep (Verb method statusCode contentTypes a) x -> Verb method statusCode contentTypes a #
AtMostOneFragment (Verb m s ct typ) # |
Instance details Defined in Servant.API.TypeLevel
type MkLink (Verb m s ct a :: Type) r # |
Instance details Defined in Servant.Links type MkLink (Verb m s ct a :: Type) r = r
type Rep (Verb method statusCode contentTypes a) # |
Instance details Defined in Servant.API.Verbs type Rep (Verb method statusCode contentTypes a) = D1 ('MetaData "Verb" "Servant.API.Verbs" "servant-0.20.2-9fHyWNA72dIEEHjgDnkpGL" 'False) (V1 :: Type -> Type)

type HeadNoContent = NoContentVerb 'HEAD #

`HEAD` with 204 status code.

type DeleteResetContent = Verb 'DELETE 205 #

`DELETE` with 205 status code.

type PatchResetContent = Verb 'PATCH 205 #

`PATCH` with 205 status code.

type PutResetContent = Verb 'PUT 205 #

`PUT` with 205 status code.

data StdMethod #

HTTP standard method (as defined by RFC 2616, and PATCH which is defined by RFC 5789).

Since: http-types-0.2.0

Constructors

GET |
POST |
HEAD |
PUT |
DELETE |
TRACE |
CONNECT |
OPTIONS |
PATCH | Since: http-types-0.8.0

#### Instances

Instances details

Data StdMethod | Since: http-types-0.12.4
Instance details Defined in Network.HTTP.Types.Method Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> StdMethod -> c StdMethod # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c StdMethod # toConstr :: StdMethod -> Constr # dataTypeOf :: StdMethod -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c StdMethod) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c StdMethod) # gmapT :: (forall b. Data b => b -> b) -> StdMethod -> StdMethod # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> StdMethod -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> StdMethod -> r # gmapQ :: (forall d. Data d => d -> u) -> StdMethod -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> StdMethod -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> StdMethod -> m StdMethod # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> StdMethod -> m StdMethod # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> StdMethod -> m StdMethod #
Bounded StdMethod |
Instance details Defined in Network.HTTP.Types.Method Methods minBound :: StdMethod # maxBound :: StdMethod #
Enum StdMethod |
Instance details Defined in Network.HTTP.Types.Method Methods succ :: StdMethod -> StdMethod # pred :: StdMethod -> StdMethod # toEnum :: Int -> StdMethod # fromEnum :: StdMethod -> Int # enumFrom :: StdMethod -> [StdMethod] # enumFromThen :: StdMethod -> StdMethod -> [StdMethod] # enumFromTo :: StdMethod -> StdMethod -> [StdMethod] # enumFromThenTo :: StdMethod -> StdMethod -> StdMethod -> [StdMethod] #
Generic StdMethod |
Instance details Defined in Network.HTTP.Types.Method Associated Types
type Rep StdMethod | Since: http-types-0.12.4
Instance details Defined in Network.HTTP.Types.Method type Rep StdMethod = D1 ('MetaData "StdMethod" "Network.HTTP.Types.Method" "http-types-0.12.4-HhEPaOzd8crnbrvqiOppv" 'False) (((C1 ('MetaCons "GET" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "POST" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "HEAD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PUT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "DELETE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TRACE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CONNECT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OPTIONS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PATCH" 'PrefixI 'False) (U1 :: Type -> Type)))))
Methods from :: StdMethod -> Rep StdMethod x # to :: Rep StdMethod x -> StdMethod #
Ix StdMethod |
Instance details Defined in Network.HTTP.Types.Method Methods range :: (StdMethod, StdMethod) -> [StdMethod] # index :: (StdMethod, StdMethod) -> StdMethod -> Int # unsafeIndex :: (StdMethod, StdMethod) -> StdMethod -> Int # inRange :: (StdMethod, StdMethod) -> StdMethod -> Bool # rangeSize :: (StdMethod, StdMethod) -> Int # unsafeRangeSize :: (StdMethod, StdMethod) -> Int #
Read StdMethod |
Instance details Defined in Network.HTTP.Types.Method Methods readsPrec :: Int -> ReadS StdMethod # readList :: ReadS [StdMethod] # readPrec :: ReadPrec StdMethod # readListPrec :: ReadPrec [StdMethod] #
Show StdMethod |
Instance details Defined in Network.HTTP.Types.Method Methods showsPrec :: Int -> StdMethod -> ShowS # show :: StdMethod -> String # showList :: [StdMethod] -> ShowS #
Eq StdMethod |
Instance details Defined in Network.HTTP.Types.Method Methods (==) :: StdMethod -> StdMethod -> Bool # (/=) :: StdMethod -> StdMethod -> Bool #
Ord StdMethod |
Instance details Defined in Network.HTTP.Types.Method Methods compare :: StdMethod -> StdMethod -> Ordering # (<) :: StdMethod -> StdMethod -> Bool # (<=) :: StdMethod -> StdMethod -> Bool # (>) :: StdMethod -> StdMethod -> Bool # (>=) :: StdMethod -> StdMethod -> Bool # max :: StdMethod -> StdMethod -> StdMethod # min :: StdMethod -> StdMethod -> StdMethod #
ReflectMethod 'CONNECT # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'CONNECT -> Method #
ReflectMethod 'DELETE # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'DELETE -> Method #
ReflectMethod 'GET # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'GET -> Method #
ReflectMethod 'HEAD # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'HEAD -> Method #
ReflectMethod 'OPTIONS # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'OPTIONS -> Method #
ReflectMethod 'PATCH # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'PATCH -> Method #
ReflectMethod 'POST # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'POST -> Method #
ReflectMethod 'PUT # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'PUT -> Method #
ReflectMethod 'TRACE # |
Instance details Defined in Servant.API.Verbs Methods reflectMethod :: Proxy 'TRACE -> Method #
type Rep StdMethod | Since: http-types-0.12.4
Instance details Defined in Network.HTTP.Types.Method type Rep StdMethod = D1 ('MetaData "StdMethod" "Network.HTTP.Types.Method" "http-types-0.12.4-HhEPaOzd8crnbrvqiOppv" 'False) (((C1 ('MetaCons "GET" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "POST" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "HEAD" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PUT" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "DELETE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TRACE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CONNECT" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "OPTIONS" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PATCH" 'PrefixI 'False) (U1 :: Type -> Type)))))