Create ReST APIs how you've always wanted.
Hammock is a framework for building ReST APIs mostly declaratively. It includes data modeling, data storage, authentication, authorization, serialization and interface protocols. It aims to dramatically reduce the effort involved in creating CRUD APIs, including integrating the bits that are specific to your application.
Hammock is in the planning and pre-alpha stages. There are high expectations of open source projects these days and that’s a good thing. However, good software does not spring, fully formed from the forehead of a sleep deprived genius. Rather, it is (or should be, in this person’s humble opinion) the result of continuous design and testing. The whole messy business, starting from day one, is on display here as an invitation to get your hands dirty.
Track progress here: https://www.pivotaltracker.com/n/projects/1158082
Planned Feature Overview
We want to create a powerful library for developing ReST APIs that supports a lot of use cases. Here is what we think that needs to look like.
Most everything is defined declaratively. That includes the data model, endpoints, filters, sorting and authorization.
Data storage, authentication, authorization, serializaton and exchange format are strictly decoupled. Extending functionality in one of these areas requires implementing a small, targeted API.
By using one of the hypermedia exchange formats and/or a generated spec.
Comes with quite a few options:
- Data storage: MongoDB and SQLAlchemy
- Authentication: Basic, HMAC and Token
- Serialization: JSON, MessagePack, XML
- Exchange formats: A custom, minimalist format as well as the Siren and HAL hypermedia formats.
- HTTP Caching: ETags and If-Modified-Since