This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

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.

Release History

Release History

This version
History Node

0.1.0

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting