Create ReST APIs how you've always wanted.
Project description
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.
Highlights
Data modeling
Project Status
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.
Declarative API
Most everything is defined declaratively. That includes the data model, endpoints, filters, sorting and authorization.
Easily extensible
Data storage, authentication, authorization, serializaton and exchange format are strictly decoupled. Extending functionality in one of these areas requires implementing a small, targeted API.
Self-documenting
By using one of the hypermedia exchange formats and/or a generated spec.
Batteries included
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
Acknowledgements
This project makes heavy use of falcon. Massive credit to that team. As well, Eve was a big inspiration, philosophically and to a lesser extent flask-mongorest.