servant-client-core-0.20.2: Core functionality and class for client function generation for servant APIs

Safe Haskell | None
Language | Haskell2010

Servant.Client.Core.Request

Contents

- Modifiers

Synopsis

- type Request = RequestF RequestBody Builder
- data RequestF body path = Request {
  - requestPath :: path
  - requestQueryString :: Seq QueryItem
  - requestBody :: Maybe (body, MediaType)
  - requestAccept :: Seq MediaType
  - requestHeaders :: Seq Header
  - requestHttpVersion :: HttpVersion
  - requestMethod :: Method
  }
- data RequestBody
  - = RequestBodyLBS ByteString
  - | RequestBodyBS ByteString
  - | RequestBodySource (SourceIO ByteString)
- defaultRequest :: Request
- addHeader :: ToHttpApiData a => HeaderName -> a -> Request -> Request
- appendToPath :: Builder -> Request -> Request
- appendToQueryString :: Text -> Maybe ByteString -> Request -> Request
- encodeQueryParamValue :: ToHttpApiData a => a -> ByteString
- setQueryString :: Query -> Request -> Request
- setRequestBody :: RequestBody -> MediaType -> Request -> Request
- setRequestBodyLBS :: ByteString -> MediaType -> Request -> Request

# Documentation

type Request = RequestF RequestBody Builder #

data RequestF body path #

Constructors

Request |
Fields requestPath :: path requestQueryString :: Seq QueryItem requestBody :: Maybe (body, MediaType) requestAccept :: Seq MediaType requestHeaders :: Seq Header requestHttpVersion :: HttpVersion requestMethod :: Method

#### Instances

Instances details

Bifoldable RequestF # |
Instance details Defined in Servant.Client.Core.Request Methods bifold :: Monoid m => RequestF m m -> m # bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> RequestF a b -> m # bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> RequestF a b -> c # bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> RequestF a b -> c #
Bifunctor RequestF # |
Instance details Defined in Servant.Client.Core.Request Methods bimap :: (a -> b) -> (c -> d) -> RequestF a c -> RequestF b d # first :: (a -> b) -> RequestF a c -> RequestF b c # second :: (b -> c) -> RequestF a b -> RequestF a c #
Bitraversable RequestF # |
Instance details Defined in Servant.Client.Core.Request Methods bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> RequestF a b -> f (RequestF c d) #
Functor (RequestF body) # |
Instance details Defined in Servant.Client.Core.Request Methods fmap :: (a -> b) -> RequestF body a -> RequestF body b # (<$) :: a -> RequestF body b -> RequestF body a #
Foldable (RequestF body) # |
Instance details Defined in Servant.Client.Core.Request Methods fold :: Monoid m => RequestF body m -> m # foldMap :: Monoid m => (a -> m) -> RequestF body a -> m # foldMap' :: Monoid m => (a -> m) -> RequestF body a -> m # foldr :: (a -> b -> b) -> b -> RequestF body a -> b # foldr' :: (a -> b -> b) -> b -> RequestF body a -> b # foldl :: (b -> a -> b) -> b -> RequestF body a -> b # foldl' :: (b -> a -> b) -> b -> RequestF body a -> b # foldr1 :: (a -> a -> a) -> RequestF body a -> a # foldl1 :: (a -> a -> a) -> RequestF body a -> a # toList :: RequestF body a -> [a] # null :: RequestF body a -> Bool # length :: RequestF body a -> Int # elem :: Eq a => a -> RequestF body a -> Bool # maximum :: Ord a => RequestF body a -> a # minimum :: Ord a => RequestF body a -> a # sum :: Num a => RequestF body a -> a # product :: Num a => RequestF body a -> a #
Traversable (RequestF body) # |
Instance details Defined in Servant.Client.Core.Request Methods traverse :: Applicative f => (a -> f b) -> RequestF body a -> f (RequestF body b) # sequenceA :: Applicative f => RequestF body (f a) -> f (RequestF body a) # mapM :: Monad m => (a -> m b) -> RequestF body a -> m (RequestF body b) # sequence :: Monad m => RequestF body (m a) -> m (RequestF body a) #
(NFData path, NFData body) => NFData (RequestF body path) # |
Instance details Defined in Servant.Client.Core.Request Methods rnf :: RequestF body path -> () #
Generic (RequestF body path) # |
Instance details Defined in Servant.Client.Core.Request Associated Types
type Rep (RequestF body path) |
Instance details Defined in Servant.Client.Core.Request type Rep (RequestF body path) = D1 ('MetaData "RequestF" "Servant.Client.Core.Request" "servant-client-core-0.20.2-JDs2vIfQ3Bk9wqlGzwnuNZ" 'False) (C1 ('MetaCons "Request" 'PrefixI 'True) ((S1 ('MetaSel ('Just "requestPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 path) :*: (S1 ('MetaSel ('Just "requestQueryString") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Seq QueryItem)) :*: S1 ('MetaSel ('Just "requestBody") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (body, MediaType))))) :*: ((S1 ('MetaSel ('Just "requestAccept") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Seq MediaType)) :*: S1 ('MetaSel ('Just "requestHeaders") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Seq Header))) :*: (S1 ('MetaSel ('Just "requestHttpVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 HttpVersion) :*: S1 ('MetaSel ('Just "requestMethod") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Method)))))
Methods from :: RequestF body path -> Rep (RequestF body path) x # to :: Rep (RequestF body path) x -> RequestF body path #
(Show a, Show b) => Show (RequestF a b) # |
Instance details Defined in Servant.Client.Core.Request Methods showsPrec :: Int -> RequestF a b -> ShowS # show :: RequestF a b -> String # showList :: [RequestF a b] -> ShowS #
(Eq path, Eq body) => Eq (RequestF body path) # |
Instance details Defined in Servant.Client.Core.Request Methods (==) :: RequestF body path -> RequestF body path -> Bool # (/=) :: RequestF body path -> RequestF body path -> Bool #
type Rep (RequestF body path) # |
Instance details Defined in Servant.Client.Core.Request type Rep (RequestF body path) = D1 ('MetaData "RequestF" "Servant.Client.Core.Request" "servant-client-core-0.20.2-JDs2vIfQ3Bk9wqlGzwnuNZ" 'False) (C1 ('MetaCons "Request" 'PrefixI 'True) ((S1 ('MetaSel ('Just "requestPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 path) :*: (S1 ('MetaSel ('Just "requestQueryString") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Seq QueryItem)) :*: S1 ('MetaSel ('Just "requestBody") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (body, MediaType))))) :*: ((S1 ('MetaSel ('Just "requestAccept") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Seq MediaType)) :*: S1 ('MetaSel ('Just "requestHeaders") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Seq Header))) :*: (S1 ('MetaSel ('Just "requestHttpVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 HttpVersion) :*: S1 ('MetaSel ('Just "requestMethod") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Method)))))

data RequestBody #

The request body. R replica of the `http-client` `RequestBody`.

Constructors

RequestBodyLBS ByteString |
RequestBodyBS ByteString |
RequestBodySource (SourceIO ByteString) |

#### Instances

Instances details

Generic RequestBody # |
Instance details Defined in Servant.Client.Core.Request Associated Types
type Rep RequestBody |
Instance details Defined in Servant.Client.Core.Request type Rep RequestBody = D1 ('MetaData "RequestBody" "Servant.Client.Core.Request" "servant-client-core-0.20.2-JDs2vIfQ3Bk9wqlGzwnuNZ" 'False) (C1 ('MetaCons "RequestBodyLBS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString)) :+: (C1 ('MetaCons "RequestBodyBS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString)) :+: C1 ('MetaCons "RequestBodySource" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (SourceIO ByteString)))))
Methods from :: RequestBody -> Rep RequestBody x # to :: Rep RequestBody x -> RequestBody #
Show RequestBody # |
Instance details Defined in Servant.Client.Core.Request Methods showsPrec :: Int -> RequestBody -> ShowS # show :: RequestBody -> String # showList :: [RequestBody] -> ShowS #
type Rep RequestBody # |
Instance details Defined in Servant.Client.Core.Request type Rep RequestBody = D1 ('MetaData "RequestBody" "Servant.Client.Core.Request" "servant-client-core-0.20.2-JDs2vIfQ3Bk9wqlGzwnuNZ" 'False) (C1 ('MetaCons "RequestBodyLBS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString)) :+: (C1 ('MetaCons "RequestBodyBS" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString)) :+: C1 ('MetaCons "RequestBodySource" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (SourceIO ByteString)))))

defaultRequest :: Request #

## Modifiers

addHeader :: ToHttpApiData a => HeaderName -> a -> Request -> Request #

Add header to the request being constructed.

appendToPath :: Builder -> Request -> Request #

Append extra path to the request being constructed.

Warning: This function assumes that the path fragment is already URL-encoded.

appendToQueryString #

Arguments

:: Text | query param name
-> Maybe ByteString | query param value
-> Request |
-> Request |

Append a query parameter to the request being constructed.

encodeQueryParamValue :: ToHttpApiData a => a -> ByteString #

Encode a query parameter value.

setQueryString :: Query -> Request -> Request #

setRequestBody :: RequestBody -> MediaType -> Request -> Request #

Set body and media type of the request being constructed.

Since: 0.12

setRequestBodyLBS :: ByteString -> MediaType -> Request -> Request #

Set body and media type of the request being constructed.

The body is set to the given bytestring using the `RequestBodyLBS` constructor.

Since: 0.12