Goals
The ultimate goal is to enable developers to easily build awesome client SDKs for their APIs.
Easy to use
- Create HTTP requests using familiar domain specific API semantics
- Declaratively define response handling behavior
- Plug-in and forget payload decoding
Quick to create
- Enable standard HTTP behaviour by assembling/configuring components
- Make it easy to implement HTTP specification compliant clients
- Provide out of the box functionality for redirection, credential management, retry handling, local caching, conditional requests, long request management
More reliable and more flexible
- Make testing of request creation and response handling simple without needing to mock the network
- Allow all SDK functionality to be incrementally “opt-in” or “opt-out”
- Make it easy to mashup multiple APIs
- Support building reactive clients
- Easily support hypermedia APIs