Skip to main content

Create ReST APIs how you've always wanted.

Project description

Build Status Coverage Status

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.

Project details


Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page