I'll use Stripe as an example. The client is responsible for:
- Configuration
- Routing
- Connection Handling
- Request Handling
- Raw requests with JSON
- Object model requests that wrap the raw request (allow us to say
Stripe::Request::Charge.get(id: 'sdfsdf'))
- Object Creation. This includes top level and associations.