Hapi is a low-level API client architecture for Crystal, specifically for JSON REST APIs. Hapi revolves around the following concepts:
A Resource represents a JSON-serializable object that can be retrieved in responses from the API server.
A Client is responsible for querying all resource endpoints, and returning responses from the API server.
An Endpoint is a queryable path exposed by the API server, that returns a response. In Hapi, an endpoint represents a single resource endpoint, with methods that operate on its individual sub-endpoints.
A Response is Hapi's representation of the raw response body received from the API server. It is a type-safe wrapper around the JSON response object.
A Response may be an Item (a single resource object), or a List (an array of resource objects)
spec/support/ directory of this repository for example usage.
The following Crystal libraries use Hapi:
Run specs with
- Fork it
- Switch to the
git checkout master
- Create your feature branch:
git checkout -b my-new-feature
- Make your changes, updating changelog and documentation as appropriate.
- Commit your changes:
- Push to the branch:
git push origin my-new-feature
- Submit a new Pull Request against the