servant-http-streams: Automatic derivation of querying functions for servant

[ bsd3, library, servant, web ] [ Propose Tags ]

This library lets you derive automatically Haskell functions that let you query each endpoint of a servant webservice.

See the client section of the tutorial.

CHANGELOG


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.16, 0.16.0.1, 0.17, 0.18, 0.18.1, 0.18.2, 0.18.3, 0.18.4
Change log CHANGELOG.md
Dependencies base (>=4.9 && <4.18), base-compat (>=0.10.5 && <0.13), bifunctors (>=5.5.3 && <5.6), bytestring (>=0.10.8.1 && <0.12), case-insensitive, containers (>=0.5.7.1 && <0.7), deepseq (>=1.4.2.0 && <1.5), exceptions (>=0.10.0 && <0.11), http-common (>=0.8.2.0 && <0.9), http-media (>=0.7.1.3 && <0.9), http-streams (>=0.8.6.1 && <0.9), http-types (>=0.12.2 && <0.13), io-streams (>=1.5.0.1 && <1.6), kan-extensions (>=5.2 && <5.3), monad-control (>=1.0.2.3 && <1.1), mtl (>=2.2.2 && <2.3), semigroupoids (>=5.3.1 && <5.4), servant (>=0.18 && <0.20), servant-client-core (>=0.18.3 && <0.20), text (>=1.2.3.0 && <2.1), time (>=1.6.0.1 && <1.13), transformers (>=0.5.2.0 && <0.6), transformers-base (>=0.4.5.2 && <0.5), transformers-compat (>=0.6.2 && <0.8) [details]
License BSD-3-Clause
Copyright 2019 Servant Contributors
Author Servant Contributors
Maintainer haskell-servant-maintainers@googlegroups.com
Revised Revision 5 made by maksbotan at 2022-10-27T19:24:13Z
Category Servant, Web
Home page http://docs.servant.dev/
Bug tracker http://github.com/haskell-servant/servant/issues
Source repo head: git clone http://github.com/haskell-servant/servant.git
Uploaded by GaelDeest at 2022-02-02T13:27:40Z
Distributions LTSHaskell:0.18.4, NixOS:0.18.4, Stackage:0.18.4
Downloads 1769 total (25 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-02-02 [all 1 reports]

Readme for servant-http-streams-0.18.4

[back to package description]

servant-client

servant

This library lets you automatically derive Haskell functions that let you query each endpoint of a servant webservice.

Example

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeOperators #-}

import Data.Proxy
import Data.Text
import Servant.API
import Servant.HttpStreams


type Book = Text

type MyApi = "books" :> Get '[JSON] [Book] -- GET /books
        :<|> "books" :> ReqBody '[JSON] Book :> Post '[JSON] Book -- POST /books

myApi :: Proxy MyApi
myApi = Proxy

-- 'client' allows you to produce operations to query an API from a client.
postNewBook :: Book -> ClientM Book
getAllBooks :: ClientM [Book]
(getAllBooks :<|> postNewBook) = client myApi

-- the IOException happens already in withClientEnvIO
main' :: IO ()
main' = do
    let burl = BaseUrl Http "localhost" 8081 ""
    withClientEnvIO burl $ \env -> do
        res <- runClientM getAllBooks env
        case res of
            Left err -> putStrLn $ "Error: " ++ show err
            Right books -> print books

main :: IO ()
main = return ()