on master help sign in
Readme for servant-client-core
257c3d4Julian K. Arni
servant-client-core/README.md+25
@@ -3,3 +3,28 @@
3![servant](https://raw.githubusercontent.com/haskell-servant/servant/master/servant.png)
3![servant](https://raw.githubusercontent.com/haskell-servant/servant/master/servant.png)
4
4
5HTTP-client-agnostic client functions for servant APIs.
5HTTP-client-agnostic client functions for servant APIs.
6+
7+This library should mainly be of interest to backend- and combinator-writers.
8+
9+## For backend-writers
10+
11+If you are creating a new backend, you'll need to:
12+
13+ 1) Define a `RunClient` instance for your datatype (call it 'MyMonad')
14+ 2) Define a `ClientLike` instance. This will look like:
15+
16+``` haskell
17+instance ClientLike (MyMonad a) (MyMonad a) where
18+ mkClient = id
19+```
20+
21+ 3) Re-export the module Servant.Client.Core.Reexport so that your end-users
22+ can be blissfully unaware of 'servant-client-core', and so each
23+ backend-package comes closer to the warm hearth of the drop-in-replacement
24+ equivalence class.
25+
26+## For combinator-writers
27+
28+You'l need to define a new `HasClient` instance for your combinator. There are
29+plenty of examples to guide you in the
30+[HasClient](src/Servant/Client/Core/Internal/HasClient.hs) module.
servant-client-core/servant-client-core.cabal+2−1
@@ -2,7 +2,8 @@ name: servant-client-core
2version: 0.11
2version: 0.11
3synopsis: Core functionality and class for client function generation for servant APIs
3synopsis: Core functionality and class for client function generation for servant APIs
4description:
4description:
5− This library provides a class
5+ This library provides backend-agnostic generation of client functions. For
6+ more information, see the README.
6license: BSD3
7license: BSD3
7license-file: LICENSE
8license-file: LICENSE
8author: Servant Contributors
9author: Servant Contributors