hapi
Hapi
Hapi is a low-level API client architecture for Crystal, specifically for JSON REST APIs. Hapi revolves around the following concepts:
-
Resource:
A Resource represents a JSON-serializable object that can be retrieved in responses from the API server.
-
Client:
A Client is responsible for querying all resource endpoints, and returning responses from the API server.
-
Endpoint
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.
-
Response:
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)
Usage
See spec/support/
directory of this repository for example usage.
Example Projects
The following Crystal libraries use Hapi:
Development
Run specs with crystal spec
.
Contributing
- Fork it
- Switch to the
master
branch: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:
git commit
- Push to the branch:
git push origin my-new-feature
- Submit a new Pull Request against the
GrottoPress:master
branch.