yam-0.5.12: Yam Web

Safe HaskellNone
LanguageHaskell2010

Yam.Middleware.Client

Contents

Synopsis

Client Middleware

parseBaseUrl :: MonadThrow m => String -> m BaseUrl #

>>> parseBaseUrl "api.example.com"
BaseUrl {baseUrlScheme = Http, baseUrlHost = "api.example.com", baseUrlPort = 80, baseUrlPath = ""}

Note: trailing slash is removed

>>> parseBaseUrl "api.example.com/"
BaseUrl {baseUrlScheme = Http, baseUrlHost = "api.example.com", baseUrlPort = 80, baseUrlPath = ""}
>>> parseBaseUrl "api.example.com/dir/"
BaseUrl {baseUrlScheme = Http, baseUrlHost = "api.example.com", baseUrlPort = 80, baseUrlPath = "/dir"}

data BaseUrl #

Simple data type to represent the target of HTTP requests for servant's automatically-generated clients.

Instances
Eq BaseUrl 
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

Methods

(==) :: BaseUrl -> BaseUrl -> Bool #

(/=) :: BaseUrl -> BaseUrl -> Bool #

Data BaseUrl 
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BaseUrl -> c BaseUrl #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BaseUrl #

toConstr :: BaseUrl -> Constr #

dataTypeOf :: BaseUrl -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BaseUrl) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BaseUrl) #

gmapT :: (forall b. Data b => b -> b) -> BaseUrl -> BaseUrl #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BaseUrl -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BaseUrl -> r #

gmapQ :: (forall d. Data d => d -> u) -> BaseUrl -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> BaseUrl -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> BaseUrl -> m BaseUrl #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BaseUrl -> m BaseUrl #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BaseUrl -> m BaseUrl #

Ord BaseUrl 
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

Show BaseUrl 
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

Generic BaseUrl 
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

Associated Types

type Rep BaseUrl :: Type -> Type #

Methods

from :: BaseUrl -> Rep BaseUrl x #

to :: Rep BaseUrl x -> BaseUrl #

Lift BaseUrl 
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

Methods

lift :: BaseUrl -> Q Exp #

ToJSON BaseUrl
>>> traverse_ (LBS8.putStrLn . encode) $ parseBaseUrl "api.example.com"
"http://api.example.com"
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

ToJSONKey BaseUrl
>>> :{
traverse_ (LBS8.putStrLn . encode) $ do
  u1 <- parseBaseUrl "api.example.com"
  u2 <- parseBaseUrl "example.com"
  return $ Map.fromList [(u1, 'x'), (u2, 'y')]
:}
{"http://api.example.com":"x","http://example.com":"y"}
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

FromJSON BaseUrl
>>> parseBaseUrl "api.example.com" >>= decode . encode :: Maybe BaseUrl
Just (BaseUrl {baseUrlScheme = Http, baseUrlHost = "api.example.com", baseUrlPort = 80, baseUrlPath = ""})
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

FromJSONKey BaseUrl 
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

type Rep BaseUrl 
Instance details

Defined in Servant.Client.Core.Internal.BaseUrl

type Rep BaseUrl = D1 (MetaData "BaseUrl" "Servant.Client.Core.Internal.BaseUrl" "servant-client-core-0.15-JETl9gGORQe1T6cOpdwTgQ" False) (C1 (MetaCons "BaseUrl" PrefixI True) ((S1 (MetaSel (Just "baseUrlScheme") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Scheme) :*: S1 (MetaSel (Just "baseUrlHost") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String)) :*: (S1 (MetaSel (Just "baseUrlPort") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int) :*: S1 (MetaSel (Just "baseUrlPath") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String))))