servant/servant-client-core
2017-09-14 09:54:13 -04:00
..
include Rewrite servant-client. 2017-09-14 09:54:13 -04:00
src/Servant/Client Documentation and Reexport module 2017-09-14 09:54:13 -04:00
test Move BaseUrlSpec 2017-09-14 09:54:13 -04:00
CHANGELOG.md Rewrite servant-client. 2017-09-14 09:54:13 -04:00
LICENSE Rewrite servant-client. 2017-09-14 09:54:13 -04:00
README.md Readme for servant-client-core 2017-09-14 09:54:13 -04:00
servant-client-core.cabal Readme for servant-client-core 2017-09-14 09:54:13 -04:00
Setup.hs Rewrite servant-client. 2017-09-14 09:54:13 -04:00

servant-client-core

servant

HTTP-client-agnostic client functions for servant APIs.

This library should mainly be of interest to backend- and combinator-writers.

For backend-writers

If you are creating a new backend, you'll need to:

1) Define a `RunClient` instance for your datatype (call it 'MyMonad')
2) Define a `ClientLike` instance. This will look like:
instance ClientLike (MyMonad a) (MyMonad a) where
  mkClient = id
3) Re-export the module Servant.Client.Core.Reexport so that your end-users
can be blissfully unaware of 'servant-client-core', and so each
backend-package comes closer to the warm hearth of the drop-in-replacement
equivalence class.

For combinator-writers

You'l need to define a new HasClient instance for your combinator. There are plenty of examples to guide you in the HasClient module.